首页 > 解决方案 > 当处理器仅在备份时终止时,公牛作业不会停止

问题描述

我正在谈论的代码是下面链接的复制代码


我在代码中有 2 个“状态”(它们都在监听队列全局事件):

  1. 添加一条消息
  2. 收听消息

出于某种原因,只有在工作人员备份时才终止侦听器工作人员时,Bull 作业不会报告为停止。

尽管它应该如文档中所述:

.on('stalled', function (job) {
  // A job has been marked as stalled. This is useful for debugging job
  // workers that crash or pause the event loop.
});

来自事件处理程序中的Bull 事件引用.on('stallled', ...)

GitHub Repro(它包含docker-compose所有设置并附有解释)


编辑:

bulmq上测试并且它有效

标签: javascriptnode.jsredisbull

解决方案


恐怕这是按设计工作的,因为在 Bull 中,工人还负责检测停滞的工作,而在 BullMQ 中,您有 QueueScheduler 来处理这个问题。

来自牛市回购 - 第 2141 期


推荐阅读