【发布时间】:2019-03-02 02:22:36
【问题描述】:
注意:crontab.guru 链接已断开,因此我将它们包装在代码块中。
我有一个 DAG,它要在太平洋时间周一午夜 8 点(UTC 时间)执行,并提前 1 分钟执行以避免任何重叠问题。
最初的计划间隔设置为1 8 */1 * 1,根据https://crontab.guru/#1_8_*/1_*_1 是“如果是在星期一,则在每月的每一天的 08:01 UTC(03:01 EST,00:01 PST)”。
但是,这导致 DAG 在每天 08:01 UTC 触发;星期一的情况似乎被忽略了。
计划间隔已更新为更简单的 1 8 * * 1,根据 https://crontab.guru/#1_8_*_*_1,它是“周一 08:01 UTC(美国东部标准时间 03:01,太平洋标准时间 00:01)”。
这阻止了 DAG 每天执行,但它没有在 2019 年 2 月 18 日(更新后的第一个星期一)触发。我读过一些其他帖子,表明开始日期可能会导致此问题,但此任务的开始日期是 datetime(2019, 2, 11, 0, 0, 0, 0, pytz.UTC),这是 2019 年 2 月 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 间隔之后执行吗?
【问题讨论】:
-
要去写一个答案,我觉得是对的。如果没有我在 cmets 中上述问题的答案,则不确定
-
下周星期一执行了吗?
标签: python cron airflow directed-acyclic-graphs