fix(msk-collector): страница выдачи — 50 карточек, не 60 #3434

Merged
lekss361 merged 1 commit from fix/msk-collector-page-size into main 2026-09-09 07:00:15 +00:00
Owner

Summary

Молчаливый недобор ~17 % с каждого коридора, найден сверкой собранного со счётчиком Авито.

PAGE_SIZE = 60 был взят из потолка пагинации 30 × 60 = 1800, а не измерен. Реальная выдача Москва+МО отдаёт 50 карточек на страницу. Из-за этого planned_pages = ceil(count / 60) не запрашивал хвост каждого коридора: коридор на 1304 объявления планировался в 22 страницы → 22 × 50 = 1100 собранных, 204 не запрошены вообще.

Цифры на момент находки: по закрытым коридорам счётчик Авито обещает 34 753, в msk_raw лежит 28 352. Из разрыва в 6 401 около 700 — потери от падений, остальное — этот недобор.

Опаснее самой потери то, что коридор помечался done, дойдя до расчётной страницы: «покрыто всё» при непрочитанном хвосте.

С PAGE_SIZE = 50 потолок пагинации даёт 1500 на запрос — ровно дефолтный --target-count, так что коридоры бисекции по-прежнему добираются целиком (коридоров с count > 1500 в текущем плане ноль).

Test plan

  • Расхождение посчитано по факту: сумма count закрытых коридоров против SELECT count(*) в msk_raw.avito_cards
  • Страница действительно даёт 50 — по логу прогона, каждая строка карточек 50
  • Проверено, что после правки ни один коридор не упирается в потолок 30 страниц (count > 1500 — ноль)
  • План прогона пропатчен: 35 недобранных коридоров переоткрыты, к добору 501 страница
  • Финальная сверка захвата ≥95 % — на завершении прохода

Тесты не пишутся до подтверждения поведения полным проходом.

Часть эпика #2989.

## Summary Молчаливый недобор ~17 % с каждого коридора, найден сверкой собранного со счётчиком Авито. `PAGE_SIZE = 60` был взят из потолка пагинации `30 × 60 = 1800`, а не измерен. Реальная выдача Москва+МО отдаёт **50** карточек на страницу. Из-за этого `planned_pages = ceil(count / 60)` не запрашивал хвост каждого коридора: коридор на 1304 объявления планировался в 22 страницы → 22 × 50 = 1100 собранных, 204 не запрошены вообще. Цифры на момент находки: по **закрытым** коридорам счётчик Авито обещает **34 753**, в `msk_raw` лежит **28 352**. Из разрыва в 6 401 около 700 — потери от падений, остальное — этот недобор. Опаснее самой потери то, что коридор помечался `done`, дойдя до расчётной страницы: «покрыто всё» при непрочитанном хвосте. С `PAGE_SIZE = 50` потолок пагинации даёт 1500 на запрос — ровно дефолтный `--target-count`, так что коридоры бисекции по-прежнему добираются целиком (коридоров с `count > 1500` в текущем плане ноль). ## Test plan - [x] Расхождение посчитано по факту: сумма `count` закрытых коридоров против `SELECT count(*)` в `msk_raw.avito_cards` - [x] Страница действительно даёт 50 — по логу прогона, каждая строка `карточек 50` - [x] Проверено, что после правки ни один коридор не упирается в потолок 30 страниц (`count > 1500` — ноль) - [x] План прогона пропатчен: 35 недобранных коридоров переоткрыты, к добору 501 страница - [ ] Финальная сверка захвата ≥95 % — на завершении прохода Тесты не пишутся до подтверждения поведения полным проходом. Часть эпика #2989.
lekss361 added 1 commit 2026-09-09 06:49:02 +00:00
fix(msk-collector): страница выдачи — 50 карточек, не 60
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 10s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
88f422c07b
PAGE_SIZE=60 был взят из потолка 30x60=1800, а не измерен. Реальная выдача
Москва+МО отдаёт 50 на страницу, поэтому planned_pages = ceil(count/60)
не запрашивал последние ~17% каждого коридора: по закрытым коридорам счётчик
Авито обещал 34 753, собрано 28 352.

Это ровно тот молчаливый недобор, который читается как «покрыто всё»: коридор
помечался done, дойдя до расчётной страницы, хотя выдача не кончилась. С 50
потолок пагинации даёт 1500 на запрос — совпадает с дефолтным --target-count,
так что коридоры бисекции по-прежнему добираются целиком.
lekss361 merged commit 62b9d1d4a7 into main 2026-09-09 07:00:15 +00:00
lekss361 deleted branch fix/msk-collector-page-size 2026-09-09 07:00:15 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#3434
No description provided.