在Argo工作流中出现可设置的延迟后重试



我们的一个Argo工作流步骤可能达到速率限制,我希望能够告诉Argo它应该等待多长时间,直到下一次重试。

有办法做到吗?

我在文档中看到过重试,但它只谈到了重试计数和回退策略,而且看起来不能参数化。

据我所知,在下一次重试之前,没有内置的方法添加暂停。

然而,您可以使用Argo的出口处理程序功能构建自己的出口处理功能。

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: exit-handler-with-pause-
spec:
arguments:
parameters
- name: pause-before-retry-seconds
value: "60"
entrypoint: intentional-fail
onExit: exit-handler
- name: intentional-fail
container:
image: alpine:latest
command: [sh, -c]
args: ["echo intentional failure; exit 1"]
- name: exit-handler
steps:
- - name: pause
template: pause
when: "{{workflow.status}} != Succeeded"
- name: pause
container:
image: alpine:latest
env:
- name: SECONDS
value: "{{workflow.parameters.pause-before-retry-seconds}}"
command: [sh, -c]
args:
- >-
echo "Pausing before retry..."
sleep "$SECONDS"

如果需要在工作流中计算重试暂停,请查看带有params示例的退出处理程序。

相关内容

  • 没有找到相关文章

最新更新