Arco Workflow支持使用条件语句和循环语句来构建复杂的有向无环图。可以通过设置依赖关系来控制条件和循环。以下是一个示例代码,其中包含一个简单的条件循环:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: conditional-loop-
spec:
entrypoint: conditional-loop
templates:
- name: conditional-loop
steps:
- - name: first-step
template: conditional-task
- - name: loop
when: '{{steps.first-step.outputs.result}} == "retry"'
template: conditional-task
arguments:
parameters:
- name: {{workflow.parameters.param}}
value: retry
- - name: last-step
depends: loop
template: conditional-task
arguments:
parameters:
- name: {{workflow.parameters.param}}
value: end
- name: conditional-task
inputs:
parameters:
- name: param
outputs:
parameters:
- name: result
valueFrom:
expression: '{{inputs.parameters.param}}'
container:
image: alpine
command: [sh, -c]
args: |
if [ "$0" = "retry" ]; then
echo "Task will retry"
exit 1
elif [ "$0" = "end" ]; then
echo "Task will end"
fi
retryStrategy:
limit: 2
该示例使用一个名为conditional-loop
的入口点开始,然后创建三个步骤。第一个步骤first-step
会调用conditional-task
模板,该模板是一个容器,会根据输入参数执行一个有条件的任务。如果任务执行失败,它会返回一个值为“retry”的结果。第二个步骤loop
会检查第一个步骤的输出结果,如果它的值为“retry”,则会再次调用conditional-task
上一篇:ArcoDesignwithViteandchangedefaultThemeparametr
下一篇:ARCore + Unity: 在SessionConfig上设置PlaneFindingMode对平面检测没有任何效果