有任务正在运行时,Airflow会弹出一条通知,指出调度程序似乎没有在运行,并且一直显示直到任务完成:
The scheduler does not appear to be running. Last heartbeat was received 5 minutes ago.
The DAGs list may not update, and new tasks will not be scheduled.
实际上,调度程序进程正在运行,因为我已经检查了该进程。任务完成后,通知将消失,一切恢复正常。
我的任务很繁重,可能要运行几个小时。我会提供任何帮助。预先感谢。
答案 0 :(得分:7)
我认为这是顺序执行器所期望的。顺序执行器一次运行一件事,因此它无法同时运行心跳和任务。
为什么需要使用Sequential Executor / Sqlite?切换到其他DB / Executor的建议非常合理。
答案 1 :(得分:4)
您已启动airflow webserver
,但尚未启动airflow scheduler
。
在后台运行气流调度程序
airflow scheduler > /console/scheduler_log.log &
答案 2 :(得分:2)
一个快速解决方案是单独运行气流计划程序。也许不是最好的解决方案,但是它确实对我有用。为此,请在终端中运行以下命令:
airflow scheduler
答案 3 :(得分:2)
我通过删除airflow-scheduler.pid 文件解决了这个问题。 然后 气流调度器 -D
答案 4 :(得分:0)
在使用sqlite时,我遇到了同样的问题。气流日志中有一条特殊消息:ERROR - Cannot use more than 1 thread when using sqlite. Setting max_threads to 1
。如果仅使用1个线程,则执行dag时调度程序将不可用。
因此,如果使用sqlite,请尝试切换到另一个数据库。如果不这样做,请检查max_threads
中的airflow.cfg
值。
答案 5 :(得分:0)
我有同样的问题。
我通过更新airflow.cfg
文件> sql_alchemy_conn =postgresql+psycopg2://airflow@localhost:5432/airflow
切换到postgresql
和executor = LocalExecutor
此链接可能有助于如何在本地进行设置 https://medium.com/@taufiq_ibrahim/apache-airflow-installation-on-ubuntu-ddc087482c14
答案 6 :(得分:0)
将执行者从SequentialExecutor
更改为LocalExecutor
之后,它就可以工作了!
在airflow.cfg
中:
executor = LocalExecutor
答案 7 :(得分:0)
在 Composer 页面上,点击您的环境名称,它会打开环境详细信息,转到 PyPIPackages 标签。
点击编辑按钮,增加任意包版本。
我增加了 pymsql 包的版本,这会重新启动气流环境,它需要一段时间才能更新。完成后,我不再有此错误。
你也可以添加一个Python包,它会重启airflow环境。
答案 8 :(得分:0)
我遇到了类似的问题,并且已经尝试解决此问题已有一段时间了。
我设法通过在 airflow.cfg 中设置值来解决此问题:
scheduler_health_check_threshold = 240
PS:根据 Airflow Slack 社区最近的一次对话,这可能是由于数据库端的争用而发生的。因此,建议的另一种解决方法是 scale up
数据库。就我而言,这不是一个可行的解决方案。