我需要保持与具有不同调度间隔的 Airflow DAGS 的依赖关系
示例
DAG 1 - 任务 1、任务 2(周一至周六上午 9 点运行)
DAG 2 - 任务 1、任务 2(每周周五运行)
DAG 3 - TASK 1(每天周一至周六运行,没有特定时间,在 DAG 1 或 DAG 2 后立即触发)
要求:
周一至周六的 DAG 1 成功
DAG 1 和 DAG 2 在周五成功
尝试以下示例:
DAG 1:
with DAG('DAG 1',
schedule_interval='0 9 * * 1-6'
) as dag:
TASK1 = BashOperator(task_id='TASK1',
bash_command='sample')
TASK2 = BashOperator(task_id='TASK2',
bash_command='sample')
triggerDAG2TASK2 = TriggerDagRunOperator(
task_id="TASK2",
trigger_dag_id="DAG 2"
)
triggerDAG3TASK1 = TriggerDagRunOperator(
task_id="TASK1",
trigger_dag_id="DAG 3"
)
TASK1 >> TASK2 >> *triggerDAG2TASK2 OR triggerDAG3TASK1*
DAG 2:
with DAG('DAG 2',
schedule_interval='0 9 * * 5'
) as dag:
TASK1 = BashOperator(task_id='TASK1',
bash_command='sample')
TASK2 = BashOperator(task_id='TASK2',
bash_command='sample')
triggerDAG3TASK1 = TriggerDagRunOperator(
task_id="TASK1",
trigger_dag_id="DAG 3"
)
TASK1 >> TASK2 >> triggerDAG3TASK1
DAG 3:
with DAG('DAG 3',
schedule_interval='@daily' ## No specific time, immediately after DAG 1 OR DAG 2
) as dag:
TASK1 = BashOperator(task_id='TASK1',
bash_command='sample')
TASK2 = BashOperator(task_id='TASK2',
bash_command='sample')
TASK1
如何以不同的计划间隔保持这些依赖关系?
我读过某处不推荐外部任务传感器,因为它只检查当天运行。
因为这是一个示例,所以我有多个 DAGS/任务,我正在尝试分离内容。我也可以说案例 DAG 1 每天晚上 9 点运行,DAG 2 每周晚上 10 点运行,DAG3 第二天早上 9 点运行。也需要可以处理不同日期之间的依赖关系的解决方案