首页 > 解决方案 > 有没有办法停止在工作节点上运行的长时间运行的任务?

问题描述

我希望中止在 nodeJS 集群工作节点上运行的长时间运行的任务。我使用的方法是获取工作节点的 pid 并使用 SIGKILL 将其终止。它杀死了 nodeJS 工作人员,但任务开始在另一个集群节点上运行。

如果我使用 Bull 作为任务队列,是否有一种好方法可以停止工作节点上正在运行的任务。

标签: node.jscluster-computing

解决方案


这只是一个想法,但您可以通过监听 SIGKILL 事件的回调来扩展该工作节点。此回调应在进程自行关闭之前从队列中删除正在运行的任务,因此该任务不会返回到队列中。

使用更好的架构可以提供更好的解决方案,但这可能是对您已经工作的项目的简单扩展。


推荐阅读