#2720 вылечил «алерт ровно один раз за серию» (вехи 3, 6, 12, 24, 48…), но лестница
шагает по подряд идущим завершённым failed/banned прогонам. Прод 2026-08-10: шесть
источников не собирали дольше 3× своего такта, и трое худших лестнице недоступны —
причём лишь один из трёх из-за редких вех:
cian_history_backfill 42.1 сут, стрик 0 — прогонов нет с 30.06 вовсе
avito_full_load_exhaustive 49.5 сут, стрик 0 — 5 банов обнулил 'cancelled' 09.08
avito_full_load 37.7 сут, стрик 31 — веха 48 при interval_days=7 → 119 сут
Уплотнение вех чинит только третью строку: у первых двух стрик равен нулю, уплотнять
нечего. Поэтому добавлена сводка, считающая КАЛЕНДАРНЫЙ возраст последнего успешного
прогона по scrape_schedules: раз в сутки одно событие со списком источников, у которых
он старше 3× их такта. Просрочка меряется в тактах, а не в сутках — 24 сут без сбора у
28-суточного rosreestr_quarter_poll норма, а у суточного domclick_city_sweep авария.
Лестница не тронута: она отвечает на другой вопрос («что сломалось только что»).
Заодно: шапка модуля утверждала, что прод крутит legacy app.services.scheduler. Эта
ветка удалена в #2397 Part C — строка пережила собственную правду и посылала правку
сторожей не в тот файл.