diff --git a/backend/app/services/scrapers/domrf_catalog.py b/backend/app/services/scrapers/domrf_catalog.py index b0cfd052..43eae883 100644 --- a/backend/app/services/scrapers/domrf_catalog.py +++ b/backend/app/services/scrapers/domrf_catalog.py @@ -553,6 +553,17 @@ async def scrape_catalog_batch( else: stats["failed"] += 1 + # Commit outer transaction: SAVEPOINT (`begin_nested`) в upsert_catalog_data + # лишь RELEASE'ит внутренний SAVEPOINT, но outer tx остаётся autobegin'd — + # без commit() все UPDATE'ы (цены, отделка, catalog_updated_at) откатятся + # при db.close() в Celery task. Зеркалит scrape_catalog_objects в + # domrf_catalog_object.py:460. Issue #1227. + try: + db.commit() + except Exception: + db.rollback() + raise + logger.info( "scrape_catalog_batch done: total=%d success=%d failed=%d fields_total=%d", stats["total"],