Airflow 不会在午夜执行 DAG
Airflow doesn't execute DAG's at midnight
我用以下配置做了一个 DAG:
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': airflow.utils.dates.days_ago(0, 0, minute=1),
'email': ['francisco.salazar.12@sansano.usm.cl'],
'email_on_failure': False,
'email_on_retry': False,
'max_active_runs': 1,
'retries': 1,
'retry_delay': timedelta(minutes=1),
'provide_context': True
}
dag = DAG(
'terralink_environmetal_darksky',
default_args=default_args,
description='Extract Data from Darksky API',
catchup=False,
schedule_interval='31 * * * *',
)
问题是 scheduler
正常工作并在我在 schedule_inverval
中定义的每个小时执行 DAG 运行(在每小时的第 31 分钟)但是在午夜或最后一个当天的执行(安排在第二天的 00:31:00),DAG 执行不会被触发。
我认为这是一个基于 start_date
的问题,但我还不知道如何定义此参数以避免该问题。
Airflow 建议为您的 DAG 声明一个固定的开始start_date
。 start_date 主要是为了指定您希望 DAG 何时开始 运行 第一次。 schedule_interval
将是 start_date 完成其目的后最相关的一个,或者(如果您不需要回填或重置您的 dag)。
我用以下配置做了一个 DAG:
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': airflow.utils.dates.days_ago(0, 0, minute=1),
'email': ['francisco.salazar.12@sansano.usm.cl'],
'email_on_failure': False,
'email_on_retry': False,
'max_active_runs': 1,
'retries': 1,
'retry_delay': timedelta(minutes=1),
'provide_context': True
}
dag = DAG(
'terralink_environmetal_darksky',
default_args=default_args,
description='Extract Data from Darksky API',
catchup=False,
schedule_interval='31 * * * *',
)
问题是 scheduler
正常工作并在我在 schedule_inverval
中定义的每个小时执行 DAG 运行(在每小时的第 31 分钟)但是在午夜或最后一个当天的执行(安排在第二天的 00:31:00),DAG 执行不会被触发。
我认为这是一个基于 start_date
的问题,但我还不知道如何定义此参数以避免该问题。
Airflow 建议为您的 DAG 声明一个固定的开始start_date
。 start_date 主要是为了指定您希望 DAG 何时开始 运行 第一次。 schedule_interval
将是 start_date 完成其目的后最相关的一个,或者(如果您不需要回填或重置您的 dag)。