node.js - 有没有办法停止在工作节点上运行的长时间运行的任务?
问题描述
我希望中止在 nodeJS 集群工作节点上运行的长时间运行的任务。我使用的方法是获取工作节点的 pid 并使用 SIGKILL 将其终止。它杀死了 nodeJS 工作人员,但任务开始在另一个集群节点上运行。
如果我使用 Bull 作为任务队列,是否有一种好方法可以停止工作节点上正在运行的任务。
解决方案
这只是一个想法,但您可以通过监听 SIGKILL 事件的回调来扩展该工作节点。此回调应在进程自行关闭之前从队列中删除正在运行的任务,因此该任务不会返回到队列中。
使用更好的架构可以提供更好的解决方案,但这可能是对您已经工作的项目的简单扩展。
推荐阅读
- python - 如何在任何变体中搜索listdir中的字符串
- javascript - 如何捕获由 jquery 创建的事件处理程序
- wordpress - 301 将旧站点重定向到新站点,同时保持相同的层次结构
- python - 如何以交互方式将代码的输出输入到另一个代码中并从 Pycharm 交互式 python 控制台运行它们?
- php - while循环中的sql查询返回错误的值
- r - 如何在闪亮的应用程序中结合 renderDataTable 和 renderImage
- opencv - 在opencv中使用HoughLines进行线检测
- wordpress - $wpdb 如何使用replace()?
- r - 多个令牌的频率对
- css - 从移动设备打开时如何调整弹出窗口大小