气流:为什么运营商有start_date?

sou*_*ics 7 airflow airflow-scheduler

我不明白为什么我们需要为运营商(任务实例)提供'start_date'.我们传递给DAG的那个不应该足够吗?

此外,如果当前时间是2018年2月7日上午8点30分UTC,现在我将dag的start_date设置为2018年2月7日上午0.00点,我的cron表达式为计划间隔为30 9***(每天上午9点30分,即期待在接下来的1小时内运行).我的DAG今天上午9点30分或明天(2月8日上午9点30分)运行吗?

Bla*_*key 11

关于任务实例上的start_date,我个人从未使用过这个,我总是只有一个DAG start_date.

但是从我可以看到,这将允许您指定某些任务从与主DAG不同的时间开始.看起来这是一个遗留功能,通过阅读常见问题解答,他们建议使用时间传感器代替这种类型的东西,只需要一个start_date用于通过DAG传递的所有任务.

你的第二个问题:

运行的执行日期始终是基于您的计划的上一个时间段.

来自文档(Airflow Docs)

请注意,如果您在一天的schedule_interval上运行DAG,则会在2016-01-01T23:59之后不久触发标记为2016-01-01的运行.换句话说,作业实例在其覆盖的时间段结束后启动.

澄清:

  • 如果按日计划设置,则在8日将执行第7次.
  • 如果设置为在星期日运行的每周计划,则此星期日的执行日期将是最后一个星期日.