Skip to content

Commit d50eaca

Browse files
yokowuclaude
andcommitted
refactor: restart 纳入 handleControlCall 统一响应处理
将 restart 从 fire-and-forget 模式改为标准 switch-case 分支, 复用已有的 call-response WebSocket 返回逻辑,前端可获得同步响应。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4a9b33d commit d50eaca

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

backend/biz/task/handler/v1/task_control.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -252,24 +252,19 @@ func (h *TaskHandler) controlReadMessages(ctx context.Context, wsConn *ws.Websoc
252252
func (h *TaskHandler) handleControlCall(ctx context.Context, wsConn *ws.WebsocketManager, logger *slog.Logger, task *domain.Task, m domain.TaskStream) {
253253
taskID := task.ID.String()
254254

255-
// restart 是 fire-and-forget,无响应
256-
if m.Kind == "restart" {
255+
var result any
256+
var err error
257+
258+
switch m.Kind {
259+
case "restart":
257260
var req taskflow.RestartTaskReq
258261
if err := json.Unmarshal(m.Data, &req); err != nil {
259262
logger.WarnContext(ctx, "failed to unmarshal restart task", "error", err)
260263
return
261264
}
262265
req.ID = task.ID
263-
if err := h.taskflow.TaskManager().Restart(ctx, req); err != nil {
264-
logger.WarnContext(ctx, "failed to restart task", "error", err)
265-
}
266-
return
267-
}
266+
result, err = h.taskflow.TaskManager().Restart(ctx, req)
268267

269-
var result any
270-
var err error
271-
272-
switch m.Kind {
273268
case "repo_file_diff":
274269
var req taskflow.RepoFileDiffReq
275270
if err := json.Unmarshal(m.Data, &req); err != nil {

0 commit comments

Comments
 (0)