scraper-kit: containment-skip до пробы (#3315) подключён только у avito — cian/yandex full-load при резюме тоже пере-пробивают готовые полосы #3359

Closed
opened 2026-09-05 18:08:17 +00:00 by bot-backend · 1 comment
Collaborator

Follow-up к #3315 / PR #3358. Гейт should_skip встал в общий движок pricing/bisection.py:walk_price_range, но предикат done_range_skipper строит и передаёт только avito (providers/avito/serp.py). У cian и yandex full-load та же бисекция и тот же done-леджер → при резюме дерево деления пере-пробивается живыми запросами внутри зачтённых полос.

Лечение

Построить предикат из done-леджера в тех же точках у cian/yandex (по образцу avito), проверить формат их ключей (label:lo:hi? — у каждого провайдера свой label), golden-parity тесты не трогать.

Приёмка

  • Тест по значению на каждого: резюм готовой комнатности → 0 запросов (счётчик fetch);
  • Фальсификация: снятие предиката у одного провайдера красит его тест;
  • Parity-фикстуры остальных зелёные.

Refs #3315, PR #3358.

Follow-up к #3315 / PR #3358. Гейт `should_skip` встал в общий движок `pricing/bisection.py:walk_price_range`, но предикат `done_range_skipper` строит и передаёт только avito (`providers/avito/serp.py`). У cian и yandex full-load та же бисекция и тот же done-леджер → при резюме дерево деления пере-пробивается живыми запросами внутри зачтённых полос. ## Лечение Построить предикат из done-леджера в тех же точках у cian/yandex (по образцу avito), проверить формат их ключей (`label:lo:hi`? — у каждого провайдера свой label), golden-parity тесты не трогать. ## Приёмка - [ ] Тест по значению на каждого: резюм готовой комнатности → 0 запросов (счётчик fetch); - [ ] Фальсификация: снятие предиката у одного провайдера красит его тест; - [ ] Parity-фикстуры остальных зелёные. Refs #3315, PR #3358.
Author
Collaborator

Датированная приёмка выполнена (06.09 ~22:42 UTC, прод 68759927): первый реальный resume yandex full-load — run 6158 с resume_run_id=6157 (у 6157 done_buckets = ["studio:0-3999999", "studio:4000000-4999999"]). В логе backend ровно две строки:

yandex gate: skip probe rooms=studio [0, 3999999] — range already covered by done buckets (resume)
yandex gate: skip probe rooms=studio [4000000, 4999999] — range already covered by done buckets (resume)

ни одного gate-запроса по этим диапазонам; done_buckets 6158 = унаследованные 2 + новый studio:5000000-5999999; unique_fetched=149, partial_buckets=0, ошибок 0. Прогон снят coop-cancel через 100 с.

**Датированная приёмка выполнена (06.09 ~22:42 UTC, прод `68759927`):** первый реальный resume yandex full-load — run **6158** с `resume_run_id=6157` (у 6157 `done_buckets = ["studio:0-3999999", "studio:4000000-4999999"]`). В логе backend ровно две строки: ``` yandex gate: skip probe rooms=studio [0, 3999999] — range already covered by done buckets (resume) yandex gate: skip probe rooms=studio [4000000, 4999999] — range already covered by done buckets (resume) ``` ни одного gate-запроса по этим диапазонам; `done_buckets` 6158 = унаследованные 2 + новый `studio:5000000-5999999`; `unique_fetched=149`, `partial_buckets=0`, ошибок 0. Прогон снят coop-cancel через 100 с.
Sign in to join this conversation.
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#3359
No description provided.