Блок QRATOR прилетает ВНУТРИ первой корзины: buckets_completed=0 во всех прод-
прогонах, включая тот, где собрано 389 лотов. Обход при этом всегда стартовал со
студий, поэтому корзины '2', '3', '4', '5+' не начинались вовсе.
Цена видна не в счётчиках, а в самих данных. Активные объявления по комнатности
(замер 19.08):
комнат домклик циан яндекс
студии 575 3 2 451
1 408 6 461 4 769
2 1 7 352 4 895
3 0 4 581 3 175
4 0 873 780
Одна двушка и ноль трёшек. У соседних площадок 2+ комнат — около двух третей
выдачи, то есть Домклик как источник структурно не покрывает большую часть рынка.
Правка НЕ лечит блок. Она раздаёт то, что успевает собраться, по всем корзинам:
точка входа в ROOM_BUCKETS циклически сдвигается от прогона к прогону, состав
корзин не меняется. Работает при ОДНОМ свободном узле — это существенно, потому
что ротация lease, которую задача предлагает первой, сегодня упирается в пул: 3
включённых узла, 2 забанены Домкликом до 21.08.
Источник сдвига — run_id, не дата и не случайность: детерминирован (тест
воспроизводим), не зависит от часов, не требует нового состояния в БД. Строгого
round-robin не даёт, но за 30 суток каждая корзина получает порядка пяти стартов.
bucket_start_index попадает в counters: без него прогон неатрибутируем — «двушек
не собрали» и «до двушек не дошли» выглядят в данных одинаково.
Ложные деактивации при более редком сборе проверены и не подтвердились: сторож
здоровья источника работает, 15.08 прогон deactivate_stale_domklik показал
skipped_unhealthy=1 при confirmations=94.
Тесты: 3 красных на origin/main (TypeError на новом аргументе), 5 зелёных с обеих
сторон. Отдельный тест на ПРОВОДКУ — без него передачу сдвига можно снять, и
проверки скрейпера останутся зелёными; фальсифицирован снятием передачи.