循环触发 DAG

时间:2021-02-12 04:44:40

标签: airflow airflow-scheduler airflow-operator

我尝试触发 DAG 任务 3 次,如何使用 python 脚本来完成。

目前我的流程工作是

<块引用>

dag = DAG('dag1', default_args=default_args, concurrency=1, max_active_runs=1, schedule_interval=无,catchup=False)

任务 = BashOperator( task_id='task1', bash_command='ssh "runJob.sh"', dag=dag)

有没有更好的方法来触发给定指定次数的作业?

1 个答案:

答案 0 :(得分:0)

我假设您使用的是 Airflow 2,您可以使用以下命令来触发 DAG 运行。

airflow dags trigger [-h] [-c CONF] [-e EXEC_DATE] [-r RUN_ID] [-S SUBDIR] dag_id

您可以在 this command here 上阅读更多内容。

基于该命令,我们可以使用 subprocess 来运行它。

import subprocess
command = [
    "airflow",
    "dags",
    "trigger",
    "-e",
    "2021-02-05 00:00:00",
    "-r",
    "manual__2021-02-05T00:00:00+00:00",
    "my_dag",
]

for i in range(3):
    process = subprocess.Popen(command, stdout=subprocess.PIPE)
    output, error = process.communicate()