执行任务后,Airflow Scheduler似乎没有运行

时间:2019-08-27 06:12:49

标签: airflow

有任务正在运行时,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.

实际上,调度程序进程正在运行,因为我已经检查了该进程。任务完成后,通知将消失,一切恢复正常。

我的任务很繁重,可能要运行几个小时。我会提供任何帮助。预先感谢。

9 个答案:

答案 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 标签。

点击编辑按钮,增加任意包版本。

例如: enter image description here

我增加了 pymsql 包的版本,这会重新启动气流环境,它需要一段时间才能更新。完成后,我不再有此错误。

你也可以添加一个Python包,它会重启airflow环境。

答案 8 :(得分:0)

我遇到了类似的问题,并且已经尝试解决此问题已有一段时间了。

我设法通过在 airflow.cfg 中设置值来解决此问题:

scheduler_health_check_threshold = 240

PS:根据 Airflow Slack 社区最近的一次对话,这可能是由于数据库端的争用而发生的。因此,建议的另一种解决方法是 scale up 数据库。就我而言,这不是一个可行的解决方案。