mirror of
https://github.com/garethgeorge/backrest.git
synced 2025-12-13 01:05:48 +00:00
feat: implement 'on error retry' policy (#428)
This commit is contained in:
@@ -110,8 +110,14 @@ func (t *taskRunnerImpl) ExecuteHooks(ctx context.Context, events []v1.Hook_Cond
|
||||
}
|
||||
if err := t.orchestrator.RunTask(ctx, st); hook.IsHaltingError(err) {
|
||||
var cancelErr *hook.HookErrorRequestCancel
|
||||
var retryErr *hook.HookErrorRetry
|
||||
if errors.As(err, &cancelErr) {
|
||||
return fmt.Errorf("%w: %w", tasks.ErrTaskCancelled, err)
|
||||
return fmt.Errorf("%v: %w: %w", task.Name(), &tasks.TaskCancelledError{}, cancelErr.Err)
|
||||
} else if errors.As(err, &retryErr) {
|
||||
return fmt.Errorf("%v: %w", task.Name(), &tasks.TaskRetryError{
|
||||
Err: retryErr.Err,
|
||||
Backoff: retryErr.Backoff,
|
||||
})
|
||||
}
|
||||
return fmt.Errorf("%v: %w", task.Name(), err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user