From 5dded459fc6d5d6373fd4742a93c6fb2e2806322 Mon Sep 17 00:00:00 2001 From: bdim404 Date: Wed, 11 Mar 2026 14:42:00 +0800 Subject: [PATCH] feat: Implement startup logic to reset stale audiobook chapter parsing and segment generation statuses to pending. --- qwen3-tts-backend/main.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/qwen3-tts-backend/main.py b/qwen3-tts-backend/main.py index caaaefe..b87be4c 100644 --- a/qwen3-tts-backend/main.py +++ b/qwen3-tts-backend/main.py @@ -67,6 +67,23 @@ async def lifespan(app: FastAPI): try: init_db() logger.info("Database initialized successfully") + + # Reset stale processing statuses from interrupted sessions + from core.database import SessionLocal + from db.models import AudiobookChapter, AudiobookSegment + startup_db = SessionLocal() + try: + stale_chapters = startup_db.query(AudiobookChapter).filter(AudiobookChapter.status == "parsing").all() + for ch in stale_chapters: + ch.status = "pending" + stale_segments = startup_db.query(AudiobookSegment).filter(AudiobookSegment.status == "generating").all() + for seg in stale_segments: + seg.status = "pending" + if stale_chapters or stale_segments: + startup_db.commit() + logger.info(f"Reset {len(stale_chapters)} stale parsing chapters, {len(stale_segments)} stale generating segments") + finally: + startup_db.close() except Exception as e: logger.error(f"Database initialization failed: {e}") raise