diff --git a/apps/worker/worker_app/tasks/edit_plan_generation.py b/apps/worker/worker_app/tasks/edit_plan_generation.py index cfef30096..4ca1cd3e0 100755 --- a/apps/worker/worker_app/tasks/edit_plan_generation.py +++ b/apps/worker/worker_app/tasks/edit_plan_generation.py @@ -107,6 +107,7 @@ def _mark_plan_failed(plan_repo, plan_id, gen_task_repo, generation_task_id, err gen_task.status = "failed" gen_task.error_message = error_msg gen_task.completed_at = datetime.now(timezone.utc) + gen_task.append_log("render_failed", error_msg, level="ERROR") gen_task_repo.update(gen_task) @@ -172,8 +173,13 @@ def _finalize_render_success( if gen_task: gen_task.status = "completed" gen_task.progress = 100.0 - gen_task.result_count = len(rendered_clip_ids) + # 剪辑计划是多片段合成1个成片,result_count = 生成视频数量(1),不是片段数 + gen_task.result_count = 1 gen_task.completed_at = datetime.now(timezone.utc) + gen_task.append_log( + "render_complete", + f"渲染完成:时长{duration:.1f}s,成功{len(rendered_clip_ids)}片段,失败{len(failed_clip_ids)}片段", + ) gen_task_repo.update(gen_task) logger.info( @@ -377,6 +383,7 @@ def render_edit_plan(self, plan_id: str) -> dict: if gen_task: gen_task.status = "running" gen_task.started_at = datetime.now(timezone.utc) + gen_task.append_log("render_start", f"开始渲染,引擎={engine},片段数={len(clips)}") gen_task_repo.update(gen_task) # 3. 下载素材并构建 asset_path_map @@ -441,9 +448,20 @@ def render_edit_plan(self, plan_id: str) -> dict: gen_task.status = "failed" gen_task.error_message = "所有片段素材下载失败" gen_task.completed_at = datetime.now(timezone.utc) + gen_task.append_log("download_failed", "所有片段素材下载失败", level="ERROR") gen_task_repo.update(gen_task) return {"status": "error", "message": "所有片段素材下载失败"} + # 下载完成,记录日志 + if generation_task_id: + gen_task = gen_task_repo.get(generation_task_id) + if gen_task: + gen_task.append_log( + "download_done", + f"素材下载完成:成功{len(asset_path_map)}个,失败{len(failed_clip_ids)}个", + ) + gen_task_repo.update(gen_task) + # 4. 根据引擎选择渲染方式 if engine == "unified": result = _render_with_unified(