From 659543f004407bebef8ad915564d08ebba7a1f7e Mon Sep 17 00:00:00 2001 From: bot-backend Date: Sat, 5 Sep 2026 23:06:22 +0500 Subject: [PATCH] =?UTF-8?q?fix(tradein/backfill):=20warning=20save-False?= =?UTF-8?q?=20=D0=BD=D0=B0=D0=B7=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=20=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=20id=20(avito)=20=D0=B8=20=D0=BD=D0=B5=20=D0=B4?= =?UTF-8?q?=D1=83=D0=B1=D0=BB=D0=B8=D1=80=D1=83=D0=B5=D1=82=20listing=5Fid?= =?UTF-8?q?=20(yandex)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ревью #3347, два minor. 1. avito: WHERE в save_detail_enrichment ключуется по source_id из РАЗОБРАННОГО HTML (enrichment.item_id), а warning печатал row["id"] из снимка. При редиректе/подмене карточки строка с row-id жива, и читатель лога идёт искать несуществующую проблему не у той строки («текст ошибки называет гонца»). Печатаем оба: listing_id=%s item_id=%s. 2. yandex: listing_id стоял в строке дважды (в начале и как «id=%d» в хвосте) — убран дубль. Co-Authored-By: Claude Fable 5.1 --- tradein-mvp/backend/app/tasks/avito_detail_backfill.py | 8 +++++++- tradein-mvp/backend/app/tasks/yandex_detail_backfill.py | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/tradein-mvp/backend/app/tasks/avito_detail_backfill.py b/tradein-mvp/backend/app/tasks/avito_detail_backfill.py index 2ccb60ee..436b22e9 100644 --- a/tradein-mvp/backend/app/tasks/avito_detail_backfill.py +++ b/tradein-mvp/backend/app/tasks/avito_detail_backfill.py @@ -693,12 +693,18 @@ async def run_avito_detail_backfill( # потерянный отказ площадки. Исход failed: непрошедший UPDATE — не # успех, не блок и не gone (снятие метит is_active=FALSE сам, по 404). counters.failed += 1 + # Печатаем ОБА идентификатора: WHERE в save ключуется по + # source_id из разобранного HTML (item_id), а не по row-id из + # снимка. При редиректе/подмене карточки строка listing_id + # существует и жива — не нашлась строка с source_id=item_id. logger.warning( "avito_detail_backfill: run_id=%d listing %s -- карточка " - "разобрана, но UPDATE не нашёл строку id=%s", + "разобрана, но UPDATE не нашёл строку: listing_id=%s item_id=%s " + "(WHERE по item_id из HTML)", run_id, source_url, row["id"], + enrichment.item_id, ) if use_curl: items_since_warm += 1 diff --git a/tradein-mvp/backend/app/tasks/yandex_detail_backfill.py b/tradein-mvp/backend/app/tasks/yandex_detail_backfill.py index 05842817..59d6fe99 100644 --- a/tradein-mvp/backend/app/tasks/yandex_detail_backfill.py +++ b/tradein-mvp/backend/app/tasks/yandex_detail_backfill.py @@ -468,11 +468,10 @@ async def run_yandex_detail_backfill( counters.failed += 1 logger.warning( "yandex_detail_backfill: run_id=%d listing_id=%d source_url=%s " - "-- карточка разобрана, но UPDATE не нашёл строку id=%d", + "-- карточка разобрана, но UPDATE не задел ни одной строки", run_id, listing_id, source_url, - listing_id, ) except Exception as exc: