tradein/scrapers: 101 городское расписание выключено и не запускалось ни разу — 39 городов области не отличимы от «собрано и пусто» #3311

Open
opened 2026-09-01 07:27:27 +00:00 by lekss361 · 0 comments
Owner

Что обнаружено

Из 123 расписаний *_sweep включено 22, выключено 101 — и у всех 101 last_run_at IS NULL, то есть они не запускались ни разу. next_run_at застыл на 2026-08-14, updated_at2026-08-15.

SELECT count(*) AS всего, count(*) FILTER (WHERE enabled) AS вкл,
       count(*) FILTER (WHERE NOT enabled) AS выкл,
       count(*) FILTER (WHERE NOT enabled AND last_run_at IS NULL) AS выкл_ни_разу
FROM scrape_schedules WHERE source LIKE '%sweep%';
--  всего | вкл | выкл | выкл_ни_разу
--    123 |  22 |  101 |          101

Чего это стоит

За последние 7 суток объявления пришли ровно из семи городов:

Екатеринбург 15360 · Нижний Тагил 747 · Каменск-Уральский 589
Первоуральск 575 · Верхняя Пышма 508 · Серов 319 · Новоуральск 72

Ни одного города из выключенного списка. Разбивка выключенного по площадкам:

площадка выключено города
avito 23 alapaevsk, aramil, asbest, bogdanovich, irbit, ivdel, krasnoturinsk, krasnoufimsk, krasnouralsk, nevyansk, nizhnyaya_salda, novaya_lyalya, novouralsk, rezh, severouralsk, sysert, talitsa, tavda, turinsk, verkhniy_tagil, verkhnyaya_salda, verkhnyaya_tura, volchansk
cian 39 + artemovskiy, berezovskiy, degtyarsk, kachkanar, kamyshlov, karpinsk, kushva, lesnoy, mikhaylovsk, nizhnie_sergi, nizhnyaya_tura, polevskoy, revda, sredneuralsk, sukhoy_log, verkhoturye, zarechny
yandex 39 тот же набор, что у cian, минус mikhaylovsk, плюс novouralsk

Почему это заводится тикетом, а не чинится молча

Выключённое расписание неотличимо от собранного и пустого: ни прогона, ни ошибки, ни строки в scrape_runs. Любая метрика покрытия по области сейчас показывает не «в Ревде нет предложений», а «мы в Ревду не ходили» — и по данным эти два случая не различить.

updated_at = 15.08 у всех ста одного, то есть это одномоментное ручное действие, а не деградация. Правдоподобная причина — троттлинг под дефицит прокси (#2638): живых узлов физически 4 из 7, и три площадки уже делят их между собой. Но это версия: я проверял только текущее состояние, в историю не лез.

Что нужно решить

Вопрос не технический, а продуктовый — поэтому и вынесен отдельно:

  1. Заморозка под дефицит прокси — тогда нужна явная отметка (комментарий в default_params или отдельная колонка disabled_reason, как у scrape_proxies), чтобы через полгода не гадать, и связка с #2638: расширяем пул → включаем города.
  2. Забытый бэклог — тогда включать поэтапно, начиная с крупнейших (Ревда, Полевской, Березовский, Асбест, Первоуральск уже включён), с замером нагрузки на пул.
  3. Область не нужна, работаем по ЕКБ — тогда 101 строку удалить, а не держать выключенными: мёртвые строки в расписании создают ложное впечатление охвата.

Приёмка

  • Решение зафиксировано (заморозка / поэтапное включение / удаление)
  • Если заморозка — у выключенных расписаний есть машиночитаемая причина, и она связана с #2638
  • Метрика покрытия по области отличает «не собирали» от «собрали и пусто»

Refs #2638, #3288

## Что обнаружено Из **123** расписаний `*_sweep` включено **22**, выключено **101** — и у всех 101 `last_run_at IS NULL`, то есть они не запускались **ни разу**. `next_run_at` застыл на `2026-08-14`, `updated_at` — `2026-08-15`. ```sql SELECT count(*) AS всего, count(*) FILTER (WHERE enabled) AS вкл, count(*) FILTER (WHERE NOT enabled) AS выкл, count(*) FILTER (WHERE NOT enabled AND last_run_at IS NULL) AS выкл_ни_разу FROM scrape_schedules WHERE source LIKE '%sweep%'; -- всего | вкл | выкл | выкл_ни_разу -- 123 | 22 | 101 | 101 ``` ## Чего это стоит За последние 7 суток объявления пришли ровно из **семи** городов: ``` Екатеринбург 15360 · Нижний Тагил 747 · Каменск-Уральский 589 Первоуральск 575 · Верхняя Пышма 508 · Серов 319 · Новоуральск 72 ``` Ни одного города из выключенного списка. Разбивка выключенного по площадкам: | площадка | выключено | города | |---|---:|---| | avito | 23 | alapaevsk, aramil, asbest, bogdanovich, irbit, ivdel, krasnoturinsk, krasnoufimsk, krasnouralsk, nevyansk, nizhnyaya_salda, novaya_lyalya, novouralsk, rezh, severouralsk, sysert, talitsa, tavda, turinsk, verkhniy_tagil, verkhnyaya_salda, verkhnyaya_tura, volchansk | | cian | 39 | + artemovskiy, berezovskiy, degtyarsk, kachkanar, kamyshlov, karpinsk, kushva, lesnoy, mikhaylovsk, nizhnie_sergi, nizhnyaya_tura, polevskoy, revda, sredneuralsk, sukhoy_log, verkhoturye, zarechny | | yandex | 39 | тот же набор, что у cian, минус mikhaylovsk, плюс novouralsk | ## Почему это заводится тикетом, а не чинится молча Выключённое расписание **неотличимо от собранного и пустого**: ни прогона, ни ошибки, ни строки в `scrape_runs`. Любая метрика покрытия по области сейчас показывает не «в Ревде нет предложений», а «мы в Ревду не ходили» — и по данным эти два случая не различить. `updated_at` = 15.08 у всех ста одного, то есть это одномоментное ручное действие, а не деградация. Правдоподобная причина — троттлинг под дефицит прокси (#2638): живых узлов физически 4 из 7, и три площадки уже делят их между собой. Но это версия: **я проверял только текущее состояние, в историю не лез.** ## Что нужно решить Вопрос не технический, а продуктовый — поэтому и вынесен отдельно: 1. **Заморозка под дефицит прокси** — тогда нужна явная отметка (комментарий в `default_params` или отдельная колонка `disabled_reason`, как у `scrape_proxies`), чтобы через полгода не гадать, и связка с #2638: расширяем пул → включаем города. 2. **Забытый бэклог** — тогда включать поэтапно, начиная с крупнейших (Ревда, Полевской, Березовский, Асбест, Первоуральск уже включён), с замером нагрузки на пул. 3. **Область не нужна, работаем по ЕКБ** — тогда 101 строку удалить, а не держать выключенными: мёртвые строки в расписании создают ложное впечатление охвата. ## Приёмка - [ ] Решение зафиксировано (заморозка / поэтапное включение / удаление) - [ ] Если заморозка — у выключенных расписаний есть машиночитаемая причина, и она связана с #2638 - [ ] Метрика покрытия по области отличает «не собирали» от «собрали и пусто» Refs #2638, #3288
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#3311
No description provided.