我有一个简单的DAG,看起来像这样:
开始 --> 下载 --> 完成
在我的本地环境中,我使用 LocalExecutor 来测试 DAG,但在生产中我们使用 Celery。
我遇到的问题是,当我触发任务时,LocalExecutor 会立即运行一个又一个任务,这是我期望的行为。但是,在生产中,DAG 任务不会立即执行。无论出于何种原因,我都必须手动运行每个任务,并在之后将 DAG 标记为成功......
我们几乎使用所有默认的气流 1.10.3 配置设置。DAG 有"depends_on_past": False
和schedule_interval="0 1 * * 0"
.
我想知道什么可能使本地执行器按预期运行,但芹菜执行器没有......
我在日志中看到了很多信息行,如下所示:
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 都开始按预期运行。