4 changes: 1. asyncio.gather() в Phase B/C — 6 endpoints/obj параллельно через _fetch_*_safe wrappers. ~6x speedup (3.5h -> ~35min). BrowserSession._sem(3) bounds concurrent requests автоматически. 2. Wire documents extractor (services/scrapers/documents.py) — per-object call в parallel gather. Заполняет domrf_kn_documents (был пуст после PR #305 schema-only). 3. Create services/scrapers/obj_checks.py extractor + wire в loop. Заполняет domrf_obj_checks (был пуст после PR #303 schema-only). Endpoint URL /checks не верифицирован devtools — выведен по паттерну /infrastructure; при ошибке пишет в kn_scrape_failures. 4. Phase E (после Phase D) — UPDATE is_ekb=TRUE для свежего snapshot по district_name ILIKE екатеринбург/свердловск. Best-effort (exception caught, scrape не прерывается). |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| models | ||
| observability | ||
| schemas | ||
| scrapers | ||
| services | ||
| workers | ||
| __init__.py | ||
| main.py | ||