为什么 Airflow Scheduler 只能作为非守护进程工作,而作为守护进程失败?

Why would Airflow Scheduler only work as a non-daemon process but fail as a daemon process?

我已经在 Ubuntu 服务器上设置了气流。我将网络服务器作为守护进程启动得很好。我可以使用

启动调度程序
airflow scheduler

它工作正常,而且很糟糕 运行。然后我停止它并删除 $AIRFLOW_HOME (airflow-scheduler.err, airflow-scheduler.log, airflow-scheduler.out)

中的所有 airflow-scheduler 文件

然后我尝试使用

将其作为守护进程启动
airflow scheduler -D

似乎可以正常启动,没有错误。然而,当我到达网络服务器时,它说:

“调度程序似乎没有 运行ning。上次检测信号是在 2 分钟前收到的。

DAG 列表可能不会更新,并且不会安排新任务。"

当我查看 airflow-scheduler.err 我看到:

Traceback (most recent call last):
  File "/home/emauser/.local/lib/python3.6/site-packages/sqlalchemy/pool/base.py", line 503, in <lambda>
  File "/home/emauser/.local/lib/python3.6/site-packages/sqlalchemy/pool/base.py", line 702, in _finalize_fairy
  File "/usr/lib/python3.6/logging/__init__.py", line 1337, in error
  File "/usr/lib/python3.6/logging/__init__.py", line 1444, in _log
  File "/usr/lib/python3.6/logging/__init__.py", line 1454, in handle
  File "/usr/lib/python3.6/logging/__init__.py", line 1516, in callHandlers
  File "/usr/lib/python3.6/logging/__init__.py", line 865, in handle
  File "/usr/lib/python3.6/logging/__init__.py", line 1071, in emit
  File "/usr/lib/python3.6/logging/__init__.py", line 1061, in _open
NameError: name 'open' is not defined

知道为什么我在日志记录模块的内置 open 函数上收到错误吗?

在守护程序模式下重新启动调度程序之前,请确保没有其他调度程序进程 运行。 ps aux | grep airflow-scheduler

如果有,请杀死它们,然后将您的调度程序作为守护进程启动。