diff --git a/backend/app/services/scrapers/domrf_catalog_object.py b/backend/app/services/scrapers/domrf_catalog_object.py index 6f3e5912..4e782a0e 100644 --- a/backend/app/services/scrapers/domrf_catalog_object.py +++ b/backend/app/services/scrapers/domrf_catalog_object.py @@ -449,6 +449,15 @@ async def scrape_catalog_objects( else: stats["failed"] += 1 + # Commit outer transaction: SAVEPOINT (`begin_nested`) releases внутри loop, + # но outer tx остаётся autobegin'd — без commit() все UPDATE'ы откатятся + # при db.close() в Celery task. + try: + db.commit() + except Exception: + db.rollback() + raise + logger.info( "scrape_catalog_objects done: processed=%d succeeded=%d failed=%d skipped=%d", stats["processed"],