fix(tradein/scraper-kit): scale cian anchor watchdog for proxy-pool browser fetches (#2160) #2272

Merged
lekss361 merged 1 commit from fix/tradein-cian-anchor-timeout-pool into main 2026-07-03 07:09:51 +00:00
Owner

Summary

  • Прод-факт (активация pool_browser, run 581): через пул каждый cian SERP-фетч = 13-45s (camoufox relaunch при смене прокси). Якорь = 4 room-buckets × 3 страницы + detail_top_n + houses — суммарно >>240s. Фиксированный ANCHOR_TIMEOUT_SEC=240 гильотинил КАЖДЫЙ якорь до save_listings → lots_fetched=0, после 3 подряд → mark_banned (ложный «бан» при живых фетчах: SERP стабильно отдавал 28 lots/страницу).
  • Фикс: масштабируемый watchdog _cian_anchor_timeout_s() по прецеденту avito (~pipeline:799) / yandex-combos (~1686) / domclick (~3306): max(240, 4×pages×(delay+70s) + detail_top_n×50s + houses 180s) = 1580s при дефолтах (worst-case защита от зависания, не ожидаемая длительность). INFO-лог с разбивкой, WARNING/mark_banned-сообщения показывают вычисленное значение.
  • Правка применена к обеим копиям (scraper_kit + legacy app/services/scrape_pipeline.py — живёт для admin-триггера и flag-off fallback до cleanup-волны strangler'а) + parity-тест синхрона формул.

Test plan

  • 23 passed (test_cian_city_sweep.py, 4 новых: формула при дефолтах, floor 240s, без houses, parity kit↔legacy), ruff clean
  • Post-deploy: re-poke cian_city_sweep → якоря проходят, lots сохраняются, статус done

Refs #2126, #2160

## Summary - **Прод-факт (активация pool_browser, run 581):** через пул каждый cian SERP-фетч = 13-45s (camoufox relaunch при смене прокси). Якорь = 4 room-buckets × 3 страницы + detail_top_n + houses — суммарно >>240s. Фиксированный `ANCHOR_TIMEOUT_SEC=240` гильотинил КАЖДЫЙ якорь до save_listings → `lots_fetched=0`, после 3 подряд → `mark_banned` (ложный «бан» при живых фетчах: SERP стабильно отдавал 28 lots/страницу). - **Фикс:** масштабируемый watchdog `_cian_anchor_timeout_s()` по прецеденту avito (~pipeline:799) / yandex-combos (~1686) / domclick (~3306): `max(240, 4×pages×(delay+70s) + detail_top_n×50s + houses 180s)` = 1580s при дефолтах (worst-case защита от зависания, не ожидаемая длительность). INFO-лог с разбивкой, WARNING/mark_banned-сообщения показывают вычисленное значение. - Правка применена к **обеим копиям** (scraper_kit + legacy `app/services/scrape_pipeline.py` — живёт для admin-триггера и flag-off fallback до cleanup-волны strangler'а) + parity-тест синхрона формул. ## Test plan - [x] 23 passed (`test_cian_city_sweep.py`, 4 новых: формула при дефолтах, floor 240s, без houses, parity kit↔legacy), ruff clean - [ ] Post-deploy: re-poke `cian_city_sweep` → якоря проходят, lots сохраняются, статус done Refs #2126, #2160
lekss361 added 1 commit 2026-07-03 07:06:32 +00:00
fix(tradein/scraper-kit): scale cian anchor watchdog for proxy-pool browser fetches (#2160)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 11s
CI / changes (pull_request) Successful in 11s
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
CI Trade-In / backend-tests (pull_request) Successful in 1m51s
8a10d943d7
Fixed ANCHOR_TIMEOUT_SEC=240 guillotined every cian anchor when running via
USE_PROXY_POOL_BROWSER=true: each SERP fetch goes through camoufox with relaunch
on proxy swap (13-45s/page), and an anchor = 4 room-buckets x pages_per_anchor
SERP fetches + detail_top_n details + houses-enrich >> 240s. save_listings never
ran, lots_fetched=0, and after 3 consecutive skips the run was mark_banned.

Introduces _cian_anchor_timeout_s() mirroring the avito/yandex/domclick scaling
pattern: max(ANCHOR_TIMEOUT_SEC, buckets*pages*(delay+per_serp) + details*per_detail
+ houses_budget). Defaults -> 1580s worst-case watchdog (hang guard, not expected
duration). Applied to both the scraper-kit copy (strangler target) and the active
app.services.scrape_pipeline copy that run 581 actually hit.
lekss361 merged commit 68429967ab into main 2026-07-03 07:09:51 +00:00
lekss361 deleted branch fix/tradein-cian-anchor-timeout-pool 2026-07-03 07:09:52 +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#2272
No description provided.