我正在探索将 Airflow 用作 cron,以便在设置 cron 时可以使用它的其他功能。
我通过设置 cron like 来测试它的功能
"2,3,5,8, * * * *"
。我期待特定的 dag 安排在每小时的第 2、3、5 和 8 分钟。然而实际上,第 2 分钟的 dag 在 3 日执行,3 日在 5 日执行,5 日在 8 日执行。而且它根本没有执行到第 8 次。我想它将在下一小时的第 2 分钟执行第 8 次。
看起来像是气流中 cron 表达式的某种错误或未处理的情况。
是的,那是因为气流不在间隔内执行,而是在间隔结束后执行。由于您指定了 2、3、5、8 分钟,因此它将在这些间隔结束时运行,即 3、5、8 和 2。这在此处的文档中进行了解释
这不是错误。我同意这感觉很奇怪,但这在这里解释:https ://pythonhosted.org/airflow/scheduler.html
请注意,如果您在一天的 schedule_interval 上运行 DAG,则标记为 2016-01-01 的运行将在 2016-01-01T23:59 之后不久触发。换句话说,作业实例在其涵盖的时间段结束后启动。