Google cloud platform 在前一次试运行气流完成2分钟后,连续运行DAG

Google cloud platform 在前一次试运行气流完成2分钟后,连续运行DAG,google-cloud-platform,airflow,scheduler,directed-acyclic-graphs,Google Cloud Platform,Airflow,Scheduler,Directed Acyclic Graphs,我想知道我们是否可以安排一个DAG在气流中完成相同DAG 2分钟后继续运行 编辑: 我的DAG应该以这样的方式运行:每次完成运行时,它都必须等待2分钟,然后再次开始运行。我不想将我的DAG计划为每2分钟运行一次,而应该在同一DAG完成2分钟后继续运行。是的,您可以将DAG计划为每2分钟运行一次 设置schedule\u interval='*/2****' Schedule\u interval接受CRON表达式: 如果要在2分钟后继续运行,请尝试配置,您可以在一天中的任意时间安排dag,并

我想知道我们是否可以安排一个DAG在气流中完成相同DAG 2分钟后继续运行

编辑:


我的DAG应该以这样的方式运行:每次完成运行时,它都必须等待2分钟,然后再次开始运行。我不想将我的DAG计划为每2分钟运行一次,而应该在同一DAG完成2分钟后继续运行。

是的,您可以将DAG计划为每2分钟运行一次

设置
schedule\u interval='*/2****'

Schedule\u interval接受CRON表达式:


如果要在2分钟后继续运行,请尝试配置

,您可以在一天中的任意时间安排dag,并使用再次触发。要在触发前等待2分钟,您可以简单地引入睡眠任务

达格:


任务1>>任务2>>任务3
bash操作符(bash_command=“sleep 120”)
>任务4
TriggerDagRunOperator(trigger_dag_id=“this dag id”)
您需要在
计划间隔中使用
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\u interval
中使用
timedelta
意味着它将在上次运行完成后等待2分钟,然后再触发下一次运行。

否,让我更清楚地说明这个问题。我的DAG应该以这样的方式运行:每次完成运行时,它都必须等待2分钟,然后再次开始运行。我不想安排我的DAG每2分钟运行一次,相反,它应该在完成相同的DAGok后2分钟继续运行。然后尝试使用TriggerDagRunOperator重新运行dag。我想知道这种情况下的日程安排是怎样的。是的,我也是这样做的。这对我很管用。非常感谢。