我正在尝试C在两个工作流完成日常运行时A安排B一个工作流。
有没有办法在不使用工作流模式的工作流的情况下做到这一点?
我假设A并B并行运行。
如果您可以将工作流程A和合并到具有并行步骤B的单个工作流程中,那么您可以使用互斥锁来延迟执行直到完成之后。ABABCAB
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之后启动足够长的时间。ABAB
如果 Argo 支持每个工作流使用多个互斥体/信号量,则可以避免将Aand合并到一个工作流中。B目前,没有计划支持它。
另一种选择是将所有三个工作流程组合成一个工作流程(与A之前B并行运行C)。