运行 月度 Cron Expression with Airflow 问题

Issue while running Monthly Cron Expression with Airflow

我需要一些帮助来理解月度 Cron 表达式 [43 10 3,8,12 */3 *]start_date 作为 datetime(year=2019, month=11, day=18, hour=1, minute=30, second=0 , tzinfo=pendulum.timezone("UTC"))end_date 作为 None 的行为。这已将回填设置为 true 。

当前日期是:2020-10-19

根据我的理解,它不应该触发最后两个 运行s 10-0310-08 。有人可以帮我理解这种行为吗?此外,如果它为 10-0310-08execution_date 触发 运行 那么为什么不为 10-12 触发?

您能否详细说明“它不应该触发最后两个 运行s”?

cron 表达式 43 10 3,8,12 */3 * 匹配:

“At 10:43 on day-of-month 3, 8, and 12 in every 3rd month.”

验证 cron 表达式的好工具是 crontab.guru

执行日期 10-12 尚未触发,因为 Airflow 如何处理 execution_date - 请参阅 airflow scheduler:

The scheduler won’t trigger your tasks until the period it covers has ended e.g., A job with schedule_interval set as @daily runs after the day has ended. This technique makes sure that whatever data is required for that period is fully available before the dag is executed. In the UI, it appears as if Airflow is running your tasks a day late

Let’s Repeat That, the scheduler runs your job one schedule_interval AFTER the start date, at the END of the period.

这意味着执行日期为 2020-10-12 10:43:00 的 运行 将在 2021-01-03 10:43:00.

之前不久触发