Два связанных фикса из диагностики 2026-06-27: ФИКС A (_rotate_proxy_ip): вместо одношотного GET с timeout=30s — retry-loop (proxy_rotate_attempts=3 попыток по proxy_rotate_attempt_timeout_s=8s каждая). Зависший changeip-сервис больше не блокирует весь sweep на 30s. Первый успешный attempt → True; все провалились → False (логируется как error). ФИКС B (run_avito_city_sweep): когда SERP-фаза уже сохранила лоты (lots_inserted + lots_updated > 0) и упала только detail/houses-фаза (AvitoBlockedError / RateLimitedError), помечаем run как done (не banned) при avito_serp_ok_not_banned=True (default). Метрика banned зарезервирована для случаев где SERP сам заблокирован (0 лотов). Новые настройки (ENV): PROXY_ROTATE_ATTEMPT_TIMEOUT_S=8.0 — timeout одной changeip-попытки PROXY_ROTATE_ATTEMPTS=3 — число попыток перед отказом AVITO_SERP_OK_NOT_BANNED=true — флаг нового поведения (default on) |
||
|---|---|---|
| .. | ||
| app | ||
| data/sql | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| Dockerfile | ||
| pyproject.toml | ||