feat(media): 作品保存恢复 - 按原任务重试交付并避免重复生成计费

This commit is contained in:
ddCat committed 2026-09-22 15:47:24 +08:00
1 parent 58bf197156
commit 2cd30b9951
49 files changed
+1710 -50

No files matched your search

@@ -2,6 +2,7 @@ package app
import (
"context"
"errors"
"infinite-canvas/backend/internal/model"
)
@@ -51,6 +52,13 @@ func (e *taskRouteExecutor) execute(ctx context.Context, task *model.Task, attem
if stateErr := e.port.refreshTaskProviderState(task); stateErr != nil {
return taskRouteExecutionResult{}, stateErr
}
var deliveryFailure *mediaRecoveryError
if errors.As(execution.err, &deliveryFailure) {
// The provider succeeded. Delivery must never enter route failover.
e.port.finishTaskRouteAttempt(attempt, task, nil)
execution.providerSucceeded = true
return execution, nil
}
e.port.finishTaskRouteAttempt(attempt, task, execution.err)
if execution.err == nil {
break