在 Airflow 中前一个 运行 完成 2 分钟后连续 运行 个 DAG
Continuously run a DAG after 2 minutes of completion of the previous run in Airflow
我想知道我们是否可以在 Airflow 中完成同一个 DAG 2 分钟后连续安排一个 DAG 运行。
编辑:
我的 DAG 应该 运行 每次完成其 运行 时,它必须等待 2 分钟并再次开始 运行ning。我不想每 2 分钟将我的 DAG 安排为 运行,而是应该在同一 DAG 完成 2 分钟后连续 运行。
是的,您可以安排 DAG 每 2 分钟 运行。
设置schedule_interval='*/2 * * * *'
Schedule_interval 接受 CRON 表达式:
如果您想在 2 分钟后连续重新运行,请尝试配置 TriggerDagRunOperator
您可以在一天中的任意时间安排您的 dag,然后使用 TriggerDagRunOperator
再次触发自身。要等2分钟再触发自己,你可以简单地引入一个睡眠任务。
DAG:
任务 1 >> 任务 2 >> 任务 3 BashOperator(bash_command="sleep 120")
>> 任务 4 TriggerDagRunOperator(trigger_dag_id="this-dag-id")
您需要在 schedule_interval
中使用 timedelta
作为:
from datetime import datetime, timedelta
default_args = {
'owner': 'airflow',
'start_date': datetime(2021, 5, 9),
}
with DAG(
dag_id="my_dag",
default_args=default_args,
schedule_interval=timedelta(minutes=2),
max_active_runs=1,
catchup=False,
) as dag:
your code...
在 schedule_interval
中使用 timedelta
意味着它将在上一次 运行 完成后等待 2 分钟,然后再触发下一个。
我想知道我们是否可以在 Airflow 中完成同一个 DAG 2 分钟后连续安排一个 DAG 运行。
编辑:
我的 DAG 应该 运行 每次完成其 运行 时,它必须等待 2 分钟并再次开始 运行ning。我不想每 2 分钟将我的 DAG 安排为 运行,而是应该在同一 DAG 完成 2 分钟后连续 运行。
是的,您可以安排 DAG 每 2 分钟 运行。
设置schedule_interval='*/2 * * * *'
Schedule_interval 接受 CRON 表达式:
如果您想在 2 分钟后连续重新运行,请尝试配置 TriggerDagRunOperator
您可以在一天中的任意时间安排您的 dag,然后使用 TriggerDagRunOperator
再次触发自身。要等2分钟再触发自己,你可以简单地引入一个睡眠任务。
DAG:
任务 1 >> 任务 2 >> 任务 3 BashOperator(bash_command="sleep 120")
>> 任务 4 TriggerDagRunOperator(trigger_dag_id="this-dag-id")
您需要在 schedule_interval
中使用 timedelta
作为:
from datetime import datetime, timedelta
default_args = {
'owner': 'airflow',
'start_date': datetime(2021, 5, 9),
}
with DAG(
dag_id="my_dag",
default_args=default_args,
schedule_interval=timedelta(minutes=2),
max_active_runs=1,
catchup=False,
) as dag:
your code...
在 schedule_interval
中使用 timedelta
意味着它将在上一次 运行 完成后等待 2 分钟,然后再触发下一个。