feat(media): 作品保存恢复 - 按原任务重试交付并避免重复生成计费
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user