Все 40 прогонов avito_detail_backfill за 14 суток закончились 'banned'.
Ни один не завершился штатно. Доля блоков при этом колебалась 25-100%:
прогон, обогативший 125 карточек из 190, получал тот же статус, что и
прогон 0 из 5.
Обрывало правило "N блоков подряд". Оно не отличает выгоревший пул от
здорового сбора, потому что блоки автокоррелированы и идут пачками: при
базовой доле 25-46% пачка из 5-6 подряд у независимой модели была бы
редкостью, а встречается в каждом прогоне. Критерий, срабатывающий
всегда, не несёт информации.
Теперь абортит доля блоков в скользящем окне последних N попыток
(дефолт 20 при пороге 0.7, оба в настройках с валидацией диапазона).
Пачка сама по себе обрыв не вызывает.
Safety-net старого поведения сохранён, но только для прогонов КОРОЧЕ
окна, где доля физически недостижима: 0/5 останавливается как раньше.
Без этого условия safety-net гасил бы сам фикс -- холодный старт
сессии самое вероятное место пачки, и длинный прогон обрывался бы на
пятой попытке точно так же, как до правки.
Домклик намеренно НЕ трогаем: у него один выделенный residential-прокси
без ротации, и max_consecutive_blocks=3 у него ниже avito осознанно
(data/sql/175) -- ранний обрыв бережёт репутацию единственного узла.
Наша калибровка сделана на пуле С ротацией и туда не переносится;
своя калибровка отдельной задачей.
В counters пишется гистограмма длин пачек -- без неё эффект этой и
любой следующей правки измерить нечем: сейчас там только итоги.
Refs #3184