气流调度程序无法拾取计划的 DAG,但在手动触发时运行
Airflow scheduler fails to pickup scheduled DAG's but runs when triggered manually
我安装了 Airflow 1.10.2 python 3.5.6。
元数据位于 Mysql 数据库中,使用 LocalExecutor 执行。
我已经按照以下时间表创建了示例 helloworld.py dag。
default_args = {
'owner': 'Ashish',
'depends_on_past': False,
'start_date': datetime(2019, 2, 15),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=1),
}
dag = DAG('Helloworld',schedule_interval='56 6 * * *', default_args=default_args)
但是调度程序没有按照预定的时间接收这个 dag,而当我 运行 从 UI 手动接收它时,它 运行 完全没问题。
这里的问题是为什么调度程序无法按照预定时间拾取 dag 运行。
我认为您对 start_date:
感到困惑。您当前的时间表设置为世界标准时间 2/15/2019 6:56 上午 运行。按照这个时间表,DAG 明天将 运行 毫无问题。这是因为 Airflow 运行s 作业在间隔的 end,而不是开始。
start_date:
不是你要DAG触发的时候,而是你要调度间隔开始的时候。如果您希望今天的工作 运行,开始日期应该是:'start_date': datetime(2019, 2, 14)
。那么您当前的每日调度间隔将按预期在今天上午 6:56 结束,您的 DAG 将具有 运行.
取自此answer。
我安装了 Airflow 1.10.2 python 3.5.6。
元数据位于 Mysql 数据库中,使用 LocalExecutor 执行。
我已经按照以下时间表创建了示例 helloworld.py dag。
default_args = {
'owner': 'Ashish',
'depends_on_past': False,
'start_date': datetime(2019, 2, 15),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=1),
}
dag = DAG('Helloworld',schedule_interval='56 6 * * *', default_args=default_args)
但是调度程序没有按照预定的时间接收这个 dag,而当我 运行 从 UI 手动接收它时,它 运行 完全没问题。
这里的问题是为什么调度程序无法按照预定时间拾取 dag 运行。
我认为您对 start_date:
感到困惑。您当前的时间表设置为世界标准时间 2/15/2019 6:56 上午 运行。按照这个时间表,DAG 明天将 运行 毫无问题。这是因为 Airflow 运行s 作业在间隔的 end,而不是开始。
start_date:
不是你要DAG触发的时候,而是你要调度间隔开始的时候。如果您希望今天的工作 运行,开始日期应该是:'start_date': datetime(2019, 2, 14)
。那么您当前的每日调度间隔将按预期在今天上午 6:56 结束,您的 DAG 将具有 运行.
取自此answer。