为什么使用 Airflow 运行 DAG 时执行日期是过去的日期?

问题描述 投票:0回答:1

我对执行日期有一些不明白的地方。我有以下问题:

from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime

default_args = {
    'owner': 'me',
    'depends_on_past': True,
    'email': '[email protected]',
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 0,
}

dag = DAG(
    'dag_test',
    default_args=default_args,
    description="DAG test",
    schedule_interval='0 15 * * *',
    concurrency=1,
    catchup=False,
    start_date=datetime(2024, 1, 1)
)

task = BashOperator(
    task_id='task',
    bash_command='echo 1',
    dag=dag,
)

当我激活 dag 时,它每天下午 3 点运行,但执行日期是前一天。示例:当 2 月 16 日触发 dag 时,执行日期为 2 月 15 日。

感谢您的帮助。

我希望触发日期和执行日期之间具有相同的日期。

python airflow scheduling
1个回答
0
投票

将触发器视为设置为在未来某个时间触发的警报。当你把昨天的闹钟设置为今天,闹钟响起时,闹钟会弹出,说你昨天设置的闹钟已经响了。

这就是发生的事情,运行的执行日期是设置触发器的日期,所以是昨天的日期。

© www.soinside.com 2019 - 2024. All rights reserved.