每小时运行一次气流

时间:2020-01-10 09:37:04

标签: airflow airflow-scheduler

我的爸爸

{
    'owner': 'airflow',
    'start_date': datetime(2020, 1, 10, 7, 1, 00),
    'depends_on_past': False,
    'catchup_by_default': False,
}

dag = DAG('Hourly_test_2', schedule_interval='0 * * * *', default_args=default_args)

它每小时运行一次,但是在树状图中显示的时间减少了1小时。树形图中的示例时间显示为上午8点,但实际时间为上午9点。如何同步两次?

Job应该每小时运行一次,并且每小时应与Tree视图中的当前小时相匹配。

enter image description here

2 个答案:

答案 0 :(得分:2)

这不是时间同步问题,这是由于start_date和schedule_interval所致,默认情况下,气流会计算从start_date到当前日期应执行了多少次,并在尚未间隔的任何时间间隔内启动DAG Run已执行支票here

在您的情况下,开始日期为7:01,根据您的schedule_interval,执行间隔为8:00、9:00、10:00 ...

这就是为什么在8:00运行DAG的原因,默认情况下,可以通过在dag定义中设置参数catchup = False来禁用此行为。

dag = DAG('Hourly_test_2', catchup=False, schedule_interval='0 * * * *', default_args=default_args)

答案 1 :(得分:2)

这是气流调度的方式。检查调度程序文档的这一部分。

请注意,如果您以一天的schedule_interval运行DAG,则运行 加盖了2016年1月1日的标签将在2016年1月1日T23:59之后立即触发。在 换句话说,作业实例在其涵盖的期间 结束。

让我们再说一遍,调度程序将您的作业运行一次schedule_interval 在开始日期之后,到该期间的结束。

参考:https://airflow.apache.org/docs/stable/scheduler.html