fix(tradein/scraper-kit): точность докстрингов про прод-путь build_warmed_session
All checks were successful
CI Trade-In / changes (pull_request) Successful in 10s
CI / changes (pull_request) Successful in 9s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 1m40s
All checks were successful
CI Trade-In / changes (pull_request) Successful in 10s
CI / changes (pull_request) Successful in 9s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 1m40s
code-reviewer отметил: формулировка "PROD DEFAULT" в докстрингах могла ввести в заблуждение — прод-путь сегодня всё ещё легаси (avito_detail_backfill.py импортирует build_warmed_session из legacy-модуля), этот фикс — advance-prep, не изменение живого прод-поведения.
This commit is contained in:
parent
fea054d24f
commit
ecec9ff6d7
3 changed files with 21 additions and 14 deletions
|
|
@ -7,10 +7,13 @@ sticky-прокси в `_build_detail_session(config)`. Т.к. kit-`_build_detai
|
||||||
отличие от legacy `app/services/scrapers/avito_detail.py`, который читает
|
отличие от legacy `app/services/scrapers/avito_detail.py`, который читает
|
||||||
`settings.scraper_proxy_url` напрямую) читает прокси ТОЛЬКО из инжектируемого
|
`settings.scraper_proxy_url` напрямую) читает прокси ТОЛЬКО из инжектируемого
|
||||||
`config.scraper_proxy_url`, отсутствие параметра означало, что `build_warmed_session`
|
`config.scraper_proxy_url`, отсутствие параметра означало, что `build_warmed_session`
|
||||||
физически не могло получить прокси ни при каких условиях — ломая прод-дефолт путь
|
физически не могло получить прокси ни при каких условиях. Сегодняшний единственный
|
||||||
(avito_detail_backfill_use_curl=True) тихой потерей sticky backconnect-proxy на
|
caller (`avito_detail_backfill.py`) всё ещё импортирует эту функцию из legacy-модуля,
|
||||||
warm-batch операциях. См. `test_scraper_kit_group_c_backfill_kit_parity.py` (issue
|
так что прод-путь этим фиксом не затронут — это advance-prep: как только caller
|
||||||
#2310), который явно документирует этот баг как flagged follow-up.
|
переключится на kit (avito_detail_backfill_use_curl=True — прод-дефолт режим), без
|
||||||
|
этого фикса он тихо терял бы sticky backconnect-proxy на warm-batch операциях. См.
|
||||||
|
`test_scraper_kit_group_c_backfill_kit_parity.py` (issue #2310), который явно
|
||||||
|
документирует этот баг как flagged follow-up.
|
||||||
|
|
||||||
Этот файл доказывает РАЗНИЦУ в поведении, а не просто "функция не падает":
|
Этот файл доказывает РАЗНИЦУ в поведении, а не просто "функция не падает":
|
||||||
1. `test_build_warmed_session_signature_now_accepts_config` — до фикса вызов
|
1. `test_build_warmed_session_signature_now_accepts_config` — до фикса вызов
|
||||||
|
|
|
||||||
|
|
@ -10,13 +10,14 @@ Migrates legacy scraper imports of these files to their `scraper_kit` equivalent
|
||||||
- app/tasks/avito_detail_backfill.py → AvitoScraper/BrowserFetcher/avito
|
- app/tasks/avito_detail_backfill.py → AvitoScraper/BrowserFetcher/avito
|
||||||
exceptions/fetch_detail/research_in_session/save_detail_enrichment now from
|
exceptions/fetch_detail/research_in_session/save_detail_enrichment now from
|
||||||
`scraper_kit.*`. `build_warmed_session`/`_AVITO_WARM_SEARCH_URL` stay legacy —
|
`scraper_kit.*`. `build_warmed_session`/`_AVITO_WARM_SEARCH_URL` stay legacy —
|
||||||
kit's `build_warmed_session()` builds its curl_cffi session via
|
at the time this file was written, kit's `build_warmed_session()` built its
|
||||||
`_build_detail_session()` with NO config parameter at all (unlike
|
curl_cffi session via `_build_detail_session()` with NO config parameter at all
|
||||||
`fetch_detail`, which does), so there is no caller-side way to inject
|
(unlike `fetch_detail`, which does), so there was no caller-side way to inject
|
||||||
`settings.scraper_proxy_url` — migrating it would silently drop the sticky
|
`settings.scraper_proxy_url`. Fixed in issue #2330 (Group F2) — kit's
|
||||||
MGTS-proxy egress on the warm-batch path (avito_detail_backfill_use_curl=True,
|
`build_warmed_session()` now accepts `config`, but THIS caller still imports it
|
||||||
the PROD DEFAULT). Same bug category as issue #2322 (scraper_kit provider
|
from legacy, so migrating this specific call site remains a separate follow-up
|
||||||
missing a config hook), different function — flagged as a new follow-up.
|
before the sticky MGTS-proxy egress on the warm-batch path
|
||||||
|
(avito_detail_backfill_use_curl=True, the prod default) can move to kit.
|
||||||
- app/tasks/cian_history_backfill.py → fetch_detail/save_detail_enrichment
|
- app/tasks/cian_history_backfill.py → fetch_detail/save_detail_enrichment
|
||||||
(listings block) + BrowserFetcher now from `scraper_kit.*`. The houses block
|
(listings block) + BrowserFetcher now from `scraper_kit.*`. The houses block
|
||||||
(cian_newbuilding.fetch_newbuilding/save_newbuilding_enrichment) and the
|
(cian_newbuilding.fetch_newbuilding/save_newbuilding_enrichment) and the
|
||||||
|
|
|
||||||
|
|
@ -330,9 +330,12 @@ async def build_warmed_session(config: ScraperConfig | None = None) -> AsyncSess
|
||||||
|
|
||||||
Strangler-инжекция (#2330): config пробрасывается в _build_detail_session тем же
|
Strangler-инжекция (#2330): config пробрасывается в _build_detail_session тем же
|
||||||
способом, каким это делает fetch_detail — до этого фикса build_warmed_session
|
способом, каким это делает fetch_detail — до этого фикса build_warmed_session
|
||||||
ВСЕГДА строил сессию без прокси (config игнорировался), что тихо теряло sticky
|
вообще не принимал config (был бы сломан любой caller, попытавшийся его передать).
|
||||||
backconnect-proxy на warm-batch пути (avito_detail_backfill_use_curl=True, PROD
|
Сегодняшний единственный caller (`avito_detail_backfill.py`) всё ещё импортирует
|
||||||
DEFAULT). См. issue #2330 / vault Scraper_Kit_Legacy_Dependency_Audit_0703.
|
build_warmed_session из legacy-модуля, так что прод-путь этим фиксом не затронут —
|
||||||
|
это advance-prep для будущей миграции call-site на kit (avito_detail_backfill_use_curl=True
|
||||||
|
станет прод-дефолтом ТОГДА, когда caller переключится). См. issue #2330 / vault
|
||||||
|
Scraper_Kit_Legacy_Dependency_Audit_0703.
|
||||||
"""
|
"""
|
||||||
session = _build_detail_session(config)
|
session = _build_detail_session(config)
|
||||||
await warm_up_session(session)
|
await warm_up_session(session)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue