注意:crontab.guru 链接已损坏,因此我将它们封装在代码块中。
我有一个 DAG,将在太平洋时间星期一午夜 8 点(UTC 时间)执行 1 分钟以避免任何重叠问题。
原本计划的间隔为1 8 */1 * 1它根据https://crontab.guru/#1_8_*/1_*_1“每天的日08:01在UTC(美国东部时间03:01,00:01 PST),如果它是在星期一”是。
然而,这导致 DAG 在每天 08:01 UTC 触发;星期一的条件似乎被忽略了。
计划间隔已更新为更简单的1 8 * * 1,根据https://crontab.guru/#1_8_*_*_1“星期一 UTC 时间 08:01(美国东部标准时间 03:01,太平洋标准时间 00:01)”。
这阻止了 DAG 每天执行,但它没有在 2019 年 2 月 18 日,即更新后的第一个星期一触发。我已经阅读了一些其他帖子,表明开始日期可能会导致此问题,但此任务的开始日期是datetime(2019, 2, 11, 0, 0, 0, 0, pytz.UTC),这是 2019-02-18 运行日期之前的两个间隔。
这是完整的 DAG/任务定义(没有导入或特定名称):
dag = DAG(
dag_id="dag",
description="dag",
# At 08:01 UTC (03:01 EST, 00:01 PST) on Monday
# (https://crontab.guru/#1_8_*_*_1)
schedule_interval="1 8 * * 1",
catchup=False,
)
task = PythonOperator(
task_id="handle",
provide_context=True,
python_callable=handle,
dag=dag,
retries=2,
retry_delay=timedelta(minutes=15),
start_date=datetime(2019, 2, 11, 0, 0, 0, 0, pytz.UTC),
)
知道为什么这不会在 2019-02-18 00:01 UTC 间隔之后执行吗?
呼啦一阵风
相关分类