首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bull队列包配置混乱

Bull队列包配置混乱
EN

Stack Overflow用户
提问于 2019-04-16 07:42:52
回答 1查看 1.8K关注 0票数 1

我正在使用来自npm的bull包来管理队列"npm“。我大部分时间都弄明白了,但在配置中似乎有些东西我不明白。

在一个新队列的配置中,有这样一个:

代码语言:javascript
复制
 maxStalledCount: number = 1; // Max amount of times a stalled job will be re-processed.

这来自他们的github的参考页面,然后您可以定义另一个配置:

代码语言:javascript
复制
attempts: number; // The total number of attempts to try the job until it completes.

我应该指出,这与失败的工作有关。

首先,似乎只有尝试实际上决定了任何事情,不管在maxStalledCount中是什么,脚本只会遵循设置的尝试量。例如:如果我将尝试设置为3,将maxStalledCount设置为1,它仍将执行3次尝试,然后在“用尽尝试”时将其移动到失败:如果将尝试设置为1,而将maxStalledCount设置为3,则在将其抛入失败之前只进行1次尝试。

有人能解释一下这种区别吗?我在网上找不到任何东西。

最终,我想要我的队列做的是尝试一些最多5次的东西,然后将它移到失败,并且能够在以后的某个时候得到所有失败的作业来重试它们,我将如何配置它们呢?

添加到参考页面的链接:https://github.com/OptimalBits/bull/blob/develop/REFERENCE.md

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-08-21 17:02:00

“停滞”的工作和“失败的”工作有区别。根据公牛文档里的这张纸条的说法,在以下情况下,一项工作被视为停滞不前:

  1. 运行作业处理器的Node进程意外终止。
  2. 您的作业处理器过于CPU密集,导致Node事件循环陷入停顿,因此Bull无法更新作业锁。

maxStalledCount是一种安全保障,所以有问题的作业不会无限期地重新启动。

如果您正在处理失败的作业,则“尝试”选项指示尝试的次数。

关于您想要的行为:

  • 将尝试选项设置为5
  • 稍后,通过以下方法收集一系列失败的作业: const failedJobs = cacheQueue.getFailed();
  • 使用以下方法重试失败的作业: failedJobs.forEach(job => job.retry());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55703021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档