chore(tradein): две ручки ротации без читателей и врущий комментарий над ними #3232

Merged
lekss361 merged 1 commit from chore/3212-dead-rotation-knobs into main 2026-08-29 14:57:41 +00:00
7 changed files with 9 additions and 35 deletions

View file

@ -886,21 +886,17 @@ class Settings(BaseSettings):
"""
return self.scraper_proxy_url_env
# ── Ban-recovery budget knobs (changeip-механизм снят #2616 шаг 2) ────────
# Раньше эти поля тюнили retry/settle для GET-changeip mobileproxy
# (AVITO_PROXY_ROTATE_URL и т.д., см. историю выше) — сама ссылка удалена
# (закрытый аккаунт), поэтому IP-ротация сейчас всегда no-op (_rotate_ip /
# _rotate_proxy_ip возвращают False без сетевого похода). Поля оставлены:
# `*_proxy_max_rotations` продолжают гейтить бюджет попыток в ban-rotation
# state machine (scraper_kit.orchestration.pipeline._try_rotate_within_budget)
# — те же 0 попыток "успеха", что и раньше при мёртвом changeip, просто без
# затрат на HTTP; `avito_proxy_rotate_settle_s` — верхняя граница
# asyncio.wait_for в app.tasks.avito_detail_backfill (страховка от зависания).
# Живая ротация IP — ASOCKS_API_TOKEN / app.services.proxy_rotation (#2611).
# ── Ban-recovery budget knobs (changeip снят #2616 шаг 2) ────────────────
# Живая ротация IP — ASOCKS_API_TOKEN / app.services.proxy_rotation (#2611);
# `_rotate_ip`/`_rotate_proxy_ip` остались no-op после удаления changeip-ссылки.
# Обе ручки читаются: `*_proxy_max_rotations` гейтит бюджет попыток в
# ban-rotation (scraper_kit.orchestration.pipeline._max_rotations),
# `avito_proxy_rotate_settle_s` — верхняя граница asyncio.wait_for в
# app.tasks.avito_detail_backfill.
# #3212: proxy_rotate_attempts / proxy_rotate_attempt_timeout_s удалены —
# ретраи changeip-GET, которых больше нет; ни одного читателя не осталось.
avito_proxy_max_rotations: int = 4
avito_proxy_rotate_settle_s: float = 9.0
proxy_rotate_attempt_timeout_s: float = 8.0
proxy_rotate_attempts: int = 3
# ── ASocks pool-proxy rotation (#2600) ───────────────────────────────────
# Bearer-токен веб-кабинета ASocks для POST .../unlimited-proxy/{portId}/refresh-ip

View file

@ -175,14 +175,6 @@ class RealScraperConfig:
def avito_proxy_rotate_settle_s(self) -> float:
return _settings.avito_proxy_rotate_settle_s
@property
def proxy_rotate_attempts(self) -> int:
return _settings.proxy_rotate_attempts
@property
def proxy_rotate_attempt_timeout_s(self) -> float:
return _settings.proxy_rotate_attempt_timeout_s
@property
def cian_proxy_max_rotations(self) -> int:
return _settings.cian_proxy_max_rotations

View file

@ -155,8 +155,6 @@ def _config() -> SimpleNamespace:
avito_proxy_max_rotations=0,
avito_serp_ok_not_banned=True,
avito_proxy_rotate_settle_s=0.0,
proxy_rotate_attempts=1,
proxy_rotate_attempt_timeout_s=1.0,
avito_full_load_price_cap=1400,
avito_full_load_max_pages=100,
avito_full_load_concurrency=1,

View file

@ -99,8 +99,6 @@ def _config() -> SimpleNamespace:
avito_proxy_max_rotations=0,
avito_serp_ok_not_banned=True,
avito_proxy_rotate_settle_s=0.0,
proxy_rotate_attempts=1,
proxy_rotate_attempt_timeout_s=1.0,
cian_proxy_max_rotations=0,
yandex_proxy_max_rotations=0,
cian_full_load_per_fetch_timeout_s=0.0,

View file

@ -195,8 +195,6 @@ def _serp_config() -> SimpleNamespace:
avito_proxy_max_rotations=0,
avito_serp_ok_not_banned=True,
avito_proxy_rotate_settle_s=0.0,
proxy_rotate_attempts=1,
proxy_rotate_attempt_timeout_s=1.0,
scraper_skip_seen_today=False,
)

View file

@ -128,8 +128,6 @@ class _Scenario:
avito_proxy_max_rotations=self.avito_proxy_max_rotations,
avito_serp_ok_not_banned=self.avito_serp_ok_not_banned,
avito_proxy_rotate_settle_s=0.0,
proxy_rotate_attempts=1,
proxy_rotate_attempt_timeout_s=1.0,
cian_proxy_max_rotations=0,
yandex_proxy_max_rotations=0,
scraper_skip_seen_today=False,

View file

@ -157,12 +157,6 @@ class ScraperConfig(Protocol):
avito_serp_ok_not_banned: bool
# changeip settle-пауза (секунды) после ротации IP.
avito_proxy_rotate_settle_s: float
# Ретраи changeip-GET: N попыток по proxy_rotate_attempt_timeout_s каждая (#1950).
# changeip-ссылка снята (#2616 шаг 2) — эти два поля сейчас не читаются
# ban-rotation кодом (см. avito_proxy_max_rotations выше), оставлены как
# budget-верхняя-граница для app.tasks.avito_detail_backfill wait_for.
proxy_rotate_attempts: int
proxy_rotate_attempt_timeout_s: float
# Cian лимит ротаций (rotate_url снят #2616 шаг 2, см. avito_proxy_max_rotations).
cian_proxy_max_rotations: int
# Yandex лимит ротаций (аналогично).