气流调度程序无法拾取计划的 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