From 5e1f037d4c66738d3b7e0240a64891f8f1106339 Mon Sep 17 00:00:00 2001 From: 24024 <240241002@qq.com> Date: Thu, 5 Feb 2026 20:58:25 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(task-service):=20=E5=A2=9E=E5=BC=BA?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=94=9F=E6=88=90=E4=BB=BB=E5=8A=A1=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E5=A4=84=E7=90=86=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 支持 FAILURE 状态识别并添加循环结束时的状态检查, 防止极端情况下失败状态未被正确抛出异常的问题 ``` --- services/task_service.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/task_service.py b/services/task_service.py index c2464de..4db5f9b 100644 --- a/services/task_service.py +++ b/services/task_service.py @@ -359,10 +359,14 @@ def process_video_generation(app, user_id, internal_task_id, payload, api_key, c elif 'url' in poll_result: video_url = poll_result['url'] break - elif status in ['FAILED', 'ERROR']: - raise Exception(f"视频生成失败: {poll_result.get('fail_reason') or poll_result.get('message') or '未知错误'}") + elif status in ['FAILURE', 'FAILED', 'ERROR']: + reason = poll_result.get('fail_reason') or poll_result.get('message') or '未知错误' + raise Exception(f"视频生成失败: {reason}") if not video_url: + if status in ['FAILURE', 'FAILED', 'ERROR']: # 防止循环结束时正好是失败状态但未抛出的极端情况 + reason = poll_result.get('fail_reason') or poll_result.get('message') or '未知错误' + raise Exception(f"视频生成失败: {reason}") raise Exception("超时未获取到视频地址") # 3. 持久化记录