【问题标题】:Jobs stuck in "waiting" in bull queue node.js工作卡在公牛队列node.js中的“等待”
【发布时间】:2020-04-29 14:21:07
【问题描述】:

当一个工作被卡住 1 个多小时(通常需要大约 2 分钟才能运行)时,我在公牛队列中有一堆工作,但没有失败。我无法使用我使用的公牛竞技场 UI 将作业从活动状态中删除,因此我删除了 Redis 中活动作业的键。

这删除了卡住的活动作业,但现在队列没有从等待列表中拉出任何作业。

有什么想法吗?关于如何解决它的任何想法?

【问题讨论】:

  • 我遇到了类似的问题,作业似乎卡在等待状态。你解决了这个问题吗?
  • 我在源代码中重命名了队列,然后重新部署。绝对不是一个理想的解决方案,但它确实让一切都解开并再次流动。
  • 感谢@steveryan 的回复。还有另一个问题,您是否实现了称为单独流程的流程方法? github.com/OptimalBits/bull#separate-processes。想知道如何确定它的性能是否比常规方法更好
  • @steveryan 我看到了同样的问题。重命名队列确实解决了这个问题。您或任何人是否找到了此问题的根本原因?
  • 也发生在我身上。随机作业似乎保持在 WAITING 状态,并且在达到最大重试次数后,它会失败。重命名队列可以修复它。我认为当您手动删除密钥并导致这种行为时,redis 中的某些内容会变得陈旧。重命名与从头开始创建新队列相同。

标签: node.js redis queue bull-queue


【解决方案1】:

我刚才遇到了类似的问题。但是,我能够通过更改执行特定任务(例如定义队列、添加到队列和定义进程)的程序函数的顺序来克服挑战。

最初我有这样的流程?

  1. 创建队列
  2. 定义流程
  3. 加入队列

但在遇到问题后我将其更改为

  1. 创建队列
  2. 加入队列
  3. 定义流程

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 2019-12-19
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2019-01-13
    • 2019-09-06
    • 2022-01-12
    • 2019-08-22
    相关资源
    最近更新 更多