Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Airflow 了解资产的执行日期';catchup=false';_Airflow_Airflow Scheduler_Airflow Operator - Fatal编程技术网

Airflow 了解资产的执行日期';catchup=false';

Airflow 了解资产的执行日期';catchup=false';,airflow,airflow-scheduler,airflow-operator,Airflow,Airflow Scheduler,Airflow Operator,我想看看气流如何设置任何DAG的执行日期。我已在DAG中设置属性catchup=false。这是我的 dag = DAG( 'child', max_active_runs=1, description='A sample pipeline run', start_date=days_ago(0), catchup=False, schedule_interval=timedelta(minutes=5) ) 现在,由于Catchup=false

我想看看气流如何设置任何DAG的执行日期。我已在DAG中设置属性catchup=false。这是我的

dag = DAG(
    'child',
    max_active_runs=1,
    description='A sample pipeline run',
    start_date=days_ago(0),
    catchup=False,
    schedule_interval=timedelta(minutes=5)
)
现在,由于Catchup=false,它应该跳过当前时间之前的运行。它也会这样做,但奇怪的是它没有设置正确的执行日期

此处,运行执行时间:

我们可以看到运行计划的频率为5分钟。但是,为什么会在时间上附加秒和毫秒? 这会影响我的传感器。
请注意,当catchup=True时,该行为运行良好。

关于执行日期,您应该查看一下。它是时段的开始,但get在时段结束时触发(开始日期)

计划程序在其覆盖的时间段结束之前不会触发您的任务,例如,一天结束后,计划时间间隔设置为@daily runs的作业。该技术确保在执行dag之前,该期间所需的任何数据都是完全可用的。在用户界面中,看起来好像气流延迟了一天运行任务

注意 如果以一天的计划间隔运行DAG,则执行日期为2019-11-21的运行将在2019-11-21T23:59后立即触发。 让我们重复一下,调度程序在开始日期之后的一个调度时间间隔,即周期结束时运行作业

这篇文章也值得一读

您还应避免将开始日期设置为相对值-这可能会导致意外行为,因为每次解析DAG文件时都会对该值进行新的解释

以下文件中有一个很长的描述:

我们建议不要使用动态值作为开始日期,尤其是datetime.now(),因为它可能会很混乱。该任务在周期结束时触发,理论上,@hourly DAG不会在now()移动时到达一小时后


我做了一些排列。当我指定cron而不是timedelta函数时,似乎执行时间正确。 所以,我的DAG现在是

dag = DAG(
    'child',
    max_active_runs=1,
    description='A sample pipeline run',
    start_date=days_ago(0),
    catchup=False,
    schedule_interval='*/5 * * * *'
)
希望它能帮助别人。我还为此提出了一个bug:
可以在以下位置进行跟踪:

当我的执行开始时,理想情况下,第一次运行的执行时间应为“开始日期+计划间隔”。但是,第一次运行“执行时间”=“0-23T06:05:53.760225+00:00”。为什么此时的秒和毫秒不是“0”。我假设这是因为动态开始日期-每次解析DAG文件时都会新解释此值。出于好奇,您可以发布此DAG配置的屏幕截图吗?