【问题标题】:Apache Airflow - Dag doesn't start even with start_date and schedule_interval definedApache Airflow - 即使定义了 start_date 和 schedule_interval,Dag 也不会启动
【发布时间】:2021-06-25 23:34:49
【问题描述】:

我是 Airflow 的新手,但我已经定义了一个 Dag 来每天早上 9 点发送一封基本电子邮件。我的 DAG 如下:

from airflow import DAG
from datetime import datetime, timedelta
from airflow.operators.bash_operator import BashOperator
from airflow.operators.email_operator import EmailOperator
from airflow.utils.dates import days_ago

date_log = str(datetime.today())
my_email = ''
default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'start_date': days_ago(0),
    'email': ['my_email'],
    'email_on_failure': True,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
    'concurrency': 1,
    'max_active_runs': 1
}

with DAG('TEST', default_args=default_args, schedule_interval='0 9 * * *',max_active_runs=1, catchup=False) as dag:
    t_teste = EmailOperator(dag=dag, task_id='successful_notification',
        to='my_email',
        subject='Airflow Dag ' + date_log,
        html_content="""""")
    t_teste

我已经完成了我需要的所有配置,并且我正在运行网络服务器和调度程序。另外,我的 Dag 在 UI 上处于活动状态。我的问题是我的 DAG 似乎什么也没做。已经两天没有运行了,即使过了预定的时间,也没有按预期运行。我已经手动测试并运行了我的触发器,它运行成功。但是如果我等待触发时间,它什么也不做。

你知道我做错了什么吗?

谢谢!

【问题讨论】:

    标签: airflow-scheduler airflow


    【解决方案1】:

    永远不会安排您的 DAG。气流调度计算state_date + schedule_interval,并在间隔结束时调度DAG。

    >>> import airflow
    >>> from airflow.utils.dates import days_ago
    >>> print(days_ago(0))
    2021-06-26 00:00:00+00:00
    

    计算2021-06-26(今天)+schedule_interval这意味着DAG将在2021-06-27 09:00上运行,但是当我们到达2021-06-27时,计算将产生2021-06-28 09:00等等,导致DAG永远不会真正运行。

    结论是:永远不要在start_date中使用动态值!

    要解决您的问题,只需更改:

    'start_date': days_ago(0) 到一些静态值,例如:'start_date': datetime(2021,6,25) 请注意,如果您运行的是旧版本的 Airflow,您可能还需要更改 dag_id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      相关资源
      最近更新 更多