Airflow DAG cli和catchup
我有DAG:Airflow DAG cli和catchup,airflow,airflow-scheduler,Airflow,Airflow Scheduler,我有DAG: dag = DAG( dag_id='example_bash_operator', default_args=args, schedule_interval='0 0 * * *', start_date=days_ago(2), dagrun_timeout=timedelta(minutes=60), tags=['example'] ) dag.cli()的意义是什么? cli()扮演什么角色 今天是10月14日。当我添加c
dag = DAG(
dag_id='example_bash_operator',
default_args=args,
schedule_interval='0 0 * * *',
start_date=days_ago(2),
dagrun_timeout=timedelta(minutes=60),
tags=['example']
)
dag.cli()的意义是什么?
cli()扮演什么角色
今天是10月14日。当我添加catchup false时,它将在10月13日执行。它不应该只在14日执行。如果没有它,它将执行12和13,这和回填一样有意义。但由于catchup false,它为什么会在10月13日执行
dag = DAG(
dag_id='example_bash_operator',
default_args=args,
schedule_interval='0 0 * * *',
start_date=days_ago(2),
catchup=False,
dagrun_timeout=timedelta(minutes=60),
tags=['example']
)
应避免将
start\u date
设置为相对值-这可能会导致意外行为,因为每次解析DAG文件时都会新解释此值
以下文件中有一个很长的描述:
我们建议不要使用动态值作为开始日期,尤其是datetime.now(),因为它可能会很混乱。该任务在周期结束时触发,理论上,@hourly DAG不会在now()移动时到达一小时后
关于dag.cli()
,我将删除整个部分-dag绝对不要求由airflow scheduler执行,请参阅
关于catchup=False
以及为什么它会在10月13日执行,请查看
计划程序在其覆盖的时间段结束之前不会触发您的任务,例如,一天结束后,计划时间间隔设置为@daily runs的作业。该技术确保在执行dag之前,该期间所需的任何数据都是完全可用的。在用户界面中,看起来好像气流延迟了一天运行任务
注意
如果以一天的计划间隔运行DAG,则执行日期为2019-11-21的运行将在2019-11-21T23:59后立即触发。
让我们重复一下,调度程序在开始日期之后的一个调度时间间隔,即周期结束时运行作业
另外,这篇文章可能值得一读。您应该避免将
开始日期设置为相对值-这可能会导致意外行为,因为每次解析DAG文件时都会新解释此值
以下文件中有一个很长的描述:
我们建议不要使用动态值作为开始日期,尤其是datetime.now(),因为它可能会很混乱。该任务在周期结束时触发,理论上,@hourly DAG不会在now()移动时到达一小时后
关于dag.cli()
,我将删除整个部分-dag绝对不要求由airflow scheduler执行,请参阅
关于catchup=False
以及为什么它会在10月13日执行,请查看
计划程序在其覆盖的时间段结束之前不会触发您的任务,例如,一天结束后,计划时间间隔设置为@daily runs的作业。该技术确保在执行dag之前,该期间所需的任何数据都是完全可用的。在用户界面中,看起来好像气流延迟了一天运行任务
注意
如果以一天的计划间隔运行DAG,则执行日期为2019-11-21的运行将在2019-11-21T23:59后立即触发。
让我们重复一下,调度程序在开始日期之后的一个调度时间间隔,即周期结束时运行作业
另外,这篇文章可能值得一读。Airflow中显示的执行日期与直觉相反,因为它显示了在间隔时间过去后它现在执行的实例的计划日期。此外,它还显示UTC时间。例如,目前在欧洲的CEST(中欧夏季时间)下,我们的执行“发生”在22:00,而不是计划的00:00。气流中显示的执行日期与直觉相反,因为它显示了间隔过后现在执行的实例的计划日期。此外,它还显示UTC时间。例如,目前在欧洲,根据CEST(中欧夏季时间),我们的处决“发生”在22:00,而不是预定的00:00。
dag = DAG(
dag_id='example_bash_operator',
default_args=args,
schedule_interval='0 0 * * *',
start_date=days_ago(2),
catchup=False,
dagrun_timeout=timedelta(minutes=60),
tags=['example']
)