Airflow-使用TriggerDAGRunOperator触发不同调度的DAG
Airflow- Using TriggerDAGRunOperator to trigger DAG of different schedule
我是 Airflow 的新手。我需要为具有不同时间表的 DAG 依赖项提出一个干净简单的解决方案。
我有 DAG 1 运行ning Daily 和 DAG 2 - Weekly。
如何使用 TriggerDAGRunOperator 从 Daily one 触发每周 DAG?
DAG 1:
with DAG('DAG 1',
schedule_interval='0 10 * * *'
) as dag:
TASK1 = BashOperator(task_id='TASK1',
bash_command='sample')
TRG_TASK=TriggerDAGRunOperator(task_id='TRG_TASK',trigger_dag_id='DAG 2')
TASK1 >> TRG_TASK
DAG 2:
with DAG('DAG 2',
schedule_interval='15 10 * * 5'
) as dag:
TASK1 = BashOperator(task_id='TASK1',
bash_command='sample')
我知道我可以使用 ExternalTaskSensor Operator 并提及 timedelta,但它会变得很长 运行。
TriggerDAGRunOperator 是否有任何 easy/clean 选项来每天检查 DAG 2 是否确实安排在 运行 那一天,然后只触发它,否则在其他日子跳过它?
谢谢
DAG2
是否总是会被 DAG1
触发,而您只希望每周 DAG2
到 运行,或者您希望 DAG2
将被执行每周通过你列出的 cron 时间表 或 由 DAG1
?
触发
如果期望 DAG2
仅由 DAG1
触发,但您只想 DAG2
每周执行一次,则可以在 [=11] 中使用 ShortCircuitOperator
=] 或 DAG2
并将 DAG2
的 schedule_interval
更新为 None
(这意味着 DAG 只会被触发——手动或编程)。
选项 1:在 DAG1
中,在执行 TriggerDagRunOperator
之前添加一个 ShortCircuitOperator
任务,该任务会检查当前日期是否是所需日期星期。如果是,则继续触发 DAG2
.
选项 2:在 DAG2
中,在执行星期几检查的工作流程的开头添加 ShortCircuitOperator
。同样,如果所需的星期几,则继续 DAG 的其余部分。
我是 Airflow 的新手。我需要为具有不同时间表的 DAG 依赖项提出一个干净简单的解决方案。
我有 DAG 1 运行ning Daily 和 DAG 2 - Weekly。 如何使用 TriggerDAGRunOperator 从 Daily one 触发每周 DAG?
DAG 1:
with DAG('DAG 1',
schedule_interval='0 10 * * *'
) as dag:
TASK1 = BashOperator(task_id='TASK1',
bash_command='sample')
TRG_TASK=TriggerDAGRunOperator(task_id='TRG_TASK',trigger_dag_id='DAG 2')
TASK1 >> TRG_TASK
DAG 2:
with DAG('DAG 2',
schedule_interval='15 10 * * 5'
) as dag:
TASK1 = BashOperator(task_id='TASK1',
bash_command='sample')
我知道我可以使用 ExternalTaskSensor Operator 并提及 timedelta,但它会变得很长 运行。
TriggerDAGRunOperator 是否有任何 easy/clean 选项来每天检查 DAG 2 是否确实安排在 运行 那一天,然后只触发它,否则在其他日子跳过它?
谢谢
DAG2
是否总是会被 DAG1
触发,而您只希望每周 DAG2
到 运行,或者您希望 DAG2
将被执行每周通过你列出的 cron 时间表 或 由 DAG1
?
如果期望 DAG2
仅由 DAG1
触发,但您只想 DAG2
每周执行一次,则可以在 [=11] 中使用 ShortCircuitOperator
=] 或 DAG2
并将 DAG2
的 schedule_interval
更新为 None
(这意味着 DAG 只会被触发——手动或编程)。
选项 1:在
DAG1
中,在执行TriggerDagRunOperator
之前添加一个ShortCircuitOperator
任务,该任务会检查当前日期是否是所需日期星期。如果是,则继续触发DAG2
.选项 2:在
DAG2
中,在执行星期几检查的工作流程的开头添加ShortCircuitOperator
。同样,如果所需的星期几,则继续 DAG 的其余部分。