feat: 添加管线阶段可视化展示并改进任务日志

- 添加 PipelineStages 组件,用圆角矩形和箭头展示管线阶段
- 三色方案:已完成为浅绿、进行中为浅橙、未完成为灰色
- 任务列表中显示进度百分比和管线阶段
- 增强后端日志输出,添加任务启动、进度更新和管线完成日志
- 用于诊断任务卡在 running 状态的问题
This commit is contained in:
2026-05-25 18:34:46 +08:00
parent 0847d126a2
commit e0a70106c1
3 changed files with 87 additions and 3 deletions
+4
View File
@@ -74,9 +74,11 @@ func Generate(c *gin.Context) {
// runPipelineBg 后台执行生成管线,更新任务状态。
func runPipelineBg(ctx context.Context, projectID, taskID string, req GenerateRequest) {
l := logger.With("task_id", taskID, "project_id", projectID)
l.Info("task started", "asset_type", req.AssetType, "prompt", req.Prompt)
// 注入进度上报回调
ctx = service.WithProgressReporter(ctx, func(stage string, progress int) {
l.Info("progress update", "stage", stage, "progress", progress)
updateTaskInDB(ctx, taskID, "running", stage, "", progress)
})
@@ -101,12 +103,14 @@ func runPipelineBg(ctx context.Context, projectID, taskID string, req GenerateRe
},
}
l.Info("calling pipeline", "input_tags", in.Tags, "user_note", in.UserNote)
output, err := service.RunPipeline(ctx, in)
if err != nil {
l.Error("task pipeline failed", "error", err)
updateTaskInDB(ctx, taskID, "failed", "", err.Error(), 0)
return
}
l.Info("pipeline completed", "asset_count", len(output.Assets))
updateTaskInDB(ctx, taskID, "saving", "format_adapter", "", 90)