CeleryExecutor 不执行简单 DAG 中的任务

Tasks in a simple DAG are not executed by CeleryExecutor

我有一个简单的 DAG,如下所示:

开始 --> 下载 --> 完成

在我的本地环境中,我使用 LocalExecutor 来测试 DAG,但在生产环境中,我们使用 Celery。

我遇到的问题是,当我触发它时,LocalExecutor 运行 的任务会立即执行,这是我期望的行为。但是,在生产环境中,DAG 任务不会立即执行。无论出于何种原因,我必须手动 运行 每个任务,然后将 DAG 标记为成功...

我们使用几乎所有默认的 Airflow 1.10.3 配置设置。 DAG 有 "depends_on_past": Falseschedule_interval="0 1 * * 0".

我想知道是什么可能使 LocalExecutor 的行为符合预期,但 CeleryExecutor 却没有...

我在日志中看到很多 INFO 行,如下所示:

Jun 20 08:42:32 airflow-scheduler airflow[4161]: [2019-06-20 08:42:32 +0000] [4167] [INFO] Handling signal: ttou
Jun 20 08:42:32 airflow-scheduler airflow[4161]: [2019-06-20 08:42:32 +0000] [11195] [INFO] Worker exiting (pid: 11195)
Jun 20 08:43:02 airflow-scheduler airflow[4161]: [2019-06-20 08:43:02 +0000] [4167] [INFO] Handling signal: ttin
Jun 20 08:43:02 airflow-scheduler airflow[4161]: [2019-06-20 08:43:02 +0000] [11205] [INFO] Booting worker with pid: 11205

经过数小时的挖掘,我发现我们的 airflow-scheduler.service systemd 脚本编写不正确。它是 运行 一个网络服务器,所以气流调度器根本不是 运行 宁...在这个问题被修复的那一刻,所有的 DAG 都开始 运行 正如预期的那样。