Airflow 运行 dag 按计划 + 2 小时
Airflow running dag schedule on schedule + 2 hrs
我有以下 dag 配置:
with DAG(
dag_id='dag_example',
catchup=False,
start_date=datetime.datetime(2022, 5, 26),
schedule_interval='0 6,7,9,11,15,19,23 * * *',
max_active_runs=1,
default_args=default_args
)
我想知道为什么我预定在早上 7 点 运行 的日期是 运行 早上 9 点(下一个预定日期...)。我正在使用气流 2.1.2。当我使用气流 v1 时,dag 运行s correclty.
这就是 Airflow 的工作原理。
DAG 安排在间隔结束时。
因此,在您的情况下,2022-05-27 10:00
的 run_id
将在 2022-05-27 12:00
开始 运行ning,因为您设置的间隔为 2 小时,Airflow 计划在间隔结束时进行。
注意:这与批处理实践一致。
如果您 运行 每天都在工作,那么今天您正在处理昨天的数据。
如果您 运行 每小时工作,那么在 10:00 您正在处理 09:00 到 10:00 之间的间隔,换句话说 run_id 09:00 实际上会在 10:00
的每小时间隔结束时 运行
您可以阅读 了解更多信息
如果您想从 DAG 中引用特定的间隔,这只是使用什么宏的问题。参见 Templates reference
我有以下 dag 配置:
with DAG(
dag_id='dag_example',
catchup=False,
start_date=datetime.datetime(2022, 5, 26),
schedule_interval='0 6,7,9,11,15,19,23 * * *',
max_active_runs=1,
default_args=default_args
)
我想知道为什么我预定在早上 7 点 运行 的日期是 运行 早上 9 点(下一个预定日期...)。我正在使用气流 2.1.2。当我使用气流 v1 时,dag 运行s correclty.
这就是 Airflow 的工作原理。
DAG 安排在间隔结束时。
因此,在您的情况下,2022-05-27 10:00
的 run_id
将在 2022-05-27 12:00
开始 运行ning,因为您设置的间隔为 2 小时,Airflow 计划在间隔结束时进行。
注意:这与批处理实践一致。
如果您 运行 每天都在工作,那么今天您正在处理昨天的数据。
如果您 运行 每小时工作,那么在 10:00 您正在处理 09:00 到 10:00 之间的间隔,换句话说 run_id 09:00 实际上会在 10:00
的每小时间隔结束时 运行您可以阅读
如果您想从 DAG 中引用特定的间隔,这只是使用什么宏的问题。参见 Templates reference