我正在尝试C
在两个工作流完成日常运行时A
安排B
一个工作流。
有没有办法在不使用工作流模式的工作流的情况下做到这一点?
我假设A
并B
并行运行。
如果您可以将工作流程A
和合并到具有并行步骤B
的单个工作流程中,那么您可以使用互斥锁来延迟执行直到完成之后。AB
A
B
C
AB
apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow
metadata:
name: AB
spec:
schedule: "* * * * *"
workflowSpec:
entrypoint: AB
synchronization:
mutex:
name: AB-C-mutex
templates:
- name: AB
steps:
- - name: A
templateRef:
name: A
template: A
- name: B
templateRef:
name: B
template: B
---
apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow
metadata:
name: C
spec:
schedule: "* * * * *"
workflowSpec:
entrypoint: C
synchronization:
mutex:
name: AB-C-mutex
templates:
# The rest of the workflow.
您需要确保在获得互斥锁C
之后启动足够长的时间。AB
AB
如果 Argo 支持每个工作流使用多个互斥体/信号量,则可以避免将A
and合并到一个工作流中。B
目前,没有计划支持它。
另一种选择是将所有三个工作流程组合成一个工作流程(与A
之前B
并行运行C
)。