我希望中止运行在nodeJS集群工作节点上的长时间运行的任务,我正在使用的方法是获取工作节点的pid并使用SIGKILL杀死它。它杀死了nodeJS worker,但任务开始在另一个群集节点上运行。
如果我使用Bull作为任务队列,是否有个很好的方法可以停止在工作节点上正在运行的任务。
答案 0 :(得分:0)
这只是一个主意,但是您可以通过侦听SIGKILL事件的回调来扩展该工作节点。此回调应在进程自行关闭之前将正在运行的任务从队列中删除,因此该任务不会返回到队列。
使用更好的体系结构会有更好的解决方案,但这可能是对您已经在工作的项目的简单扩展。