|
All checks were successful
CI / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
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 3m57s
CI Trade-In / changes (pull_request) Successful in 9s
unenrichable_pending шесть прогонов подряд равнялся ровно 3535. Счётчик считается живым SELECT'ом (кэша/матвьюхи нет), но множество замкнуто: после #2235 продюсер таких строк не создаёт (0 из 6892 yandex-строк, вставленных после самой свежей его строки id 2583989), а выйти оттуда нельзя — обогащение недостижимо, а source_url не переписывается. Замкнутое множество и обязано быть константой; вопрос был не «почему не растёт», а «правда ли непригодны». Непригодны они не были. У всех 3535 в source_id лежит числовой yandex offerId (у 3523 продублирован в yandex_offer_id), а канонический адрес из него собирается — тот же инвариант #2235 и та же формула, которой чинила легаси миграция 164. Живая проба прод-трактом (тот же прокси, curl_cffi chrome120, тот же parse): 6 из 6 HTTP 200 + parse OK, включая строки, чей сохранённый source_url — рекламный редирект na100.pro/go.php. Откуда стухший адрес: source_url пишется только при вставке — его нет ни в ON CONFLICT DO UPDATE, ни в reconcile-UPDATE save_listings. Поэтому #2235 вылечил только новые строки, а миграция 164 — только те легаси, чей URL делили несколько строк (она искала дубли URL, а не непарсимость). Строки с уникальной ссылкой на карточку застройщика не попали никуда и носят адрес, замороженный в момент вставки, хотя свип переобходит ~511 из них в сутки. Что сделано: очередь адресует такие строки URL, вычисленным из source_id, а остаток очереди разделён по причине — url_from_offer_id (адрес чиним, должен убывать) и unenrichable_pending (адресовать нечем; на проде 0). Одно число на две разные судьбы читалось как «тут делать нечего» и держало 3535 квартир вне обогащения неделю. Проверено на проде (read-only): новый снапшот-SELECT отдаёт 800/800 строк с адресом, который парсер принимает; счётчики 3535/0; разбиение точное — queueable 13921 = pending 13921, unaddressable 0. Не входит сюда: починка самой колонки source_url одноразовым UPDATE (тот же 164 без условия на дубли) — за миграцией; от неё зависит и yandex_address_backfill, где 1618 из 5217 кандидатов ходят на сайты застройщиков вместо Яндекса. |
||
|---|---|---|
| .. | ||
| app | ||
| data/sql | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| Dockerfile | ||
| pyproject.toml | ||