fix(scraper-kit): containment до пробы у cian и yandex — резюм full-load не пере-пробивает готовые полосы #3362
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3362
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/3359-containment-cian-yandex"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #3359 (follow-up #3315/#3358). Гейт
should_skipв движке был, предикат строил только avito.Формат ключей — факт по коду
_paginate_leaf_bucket:f"{room_label}:{lo}:{_hi_repr}", открытый =open— идентичен avito → парсер по умолчанию._combo_label:f"{rooms or 'any'}:{lo}-{hi}"— разделитель-, открытый потолок литералNone. Ключи не подогнаны (сломало бы старые чекпоинты): вdone_range_skipperдобавленыrange_sep=":",open_token="open"(дефолты = прежнее поведение), yandex зовёт сrange_sep="-", open_token="None".hiвключительна у всех (движок делит[lo,mid]+[mid+1,hi]) → слияние смежных по+1корректно.Один леджер на два режима (предпосылка из ревью #3358)
secondary/2:4000000-4999999) — отсевkey.startswith(f"{label}:")их не пропускает; плюс_pick_resume(params IS NOT DISTINCT FROM) — две независимые преграды, обе в докстринге, кейс на префиксный ключ в тесте.Тесты
test_3359_{cian,yandex}_exhaustive_containment_skip.py:155 passed, 1 skipped(-k bisect/pricing/parity/containment/serp; avito-тесты #3315 зелёные — параметризация обратно совместима). Фальсификация (откат yandex-хунка):полоса [4062500, 4124999] внутри зачтённой … сходил в сеть 1 раз,резюм готовой комнатности сделал 607 запрос(ов) вместо нуля— по значению; cian в том же прогоне зелёный.Прод-приёмка
Первый живой резюм cian/yandex full-load: в логе
skip probe … range already covered by done buckets (resume), просадка probe-запросов в начале прогона.Датированная приёмка выполнена (06.09 ~22:42 UTC, прод
68759927): первый реальный resume yandex full-load — run 6158 сresume_run_id=6157(у 6157done_buckets = ["studio:0-3999999", "studio:4000000-4999999"]). В логе backend ровно две строки:ни одного gate-запроса по этим диапазонам;
done_buckets6158 = унаследованные 2 + новыйstudio:5000000-5999999;unique_fetched=149,partial_buckets=0, ошибок 0. Прогон снят coop-cancel через 100 с.