我正在使用npm中的bull包来管理“ npm i bull”队列。我大部分都知道它可以正常工作,但是在配置中似乎有些我不理解的东西。
在新队列的配置中,有一个:
maxStalledCount: number = 1; // Max amount of times a stalled job will be re-processed.
这来自他们github的参考页 然后可以定义另一个配置:
attempts: number; // The total number of attempts to try the job until it completes.
我应该提到,这与失败的工作有关
首先,似乎只有尝试才能真正决定任何事情,而不管maxStalledCount中的内容是什么,脚本将仅遵循设置的尝试次数。 例如:如果我将尝试次数设置为3并将maxStalledCount设置为1,它将“仍然尝试3次”,然后在“尝试次数用完”时将其移至失败 不同的示例:如果我将尝试次数设置为1并将maxStalledCount设置为3,则在将其投入失败之前只会进行1次尝试。
有人可以解释区别吗?我在网上找不到任何东西。
我最终希望队列执行的操作是尝试尝试最多5次,然后将其移至失败,并能够在以后获得所有失败的作业以重试它们,我该如何配置呢? / p>
添加了指向参考页面的链接:https://github.com/OptimalBits/bull/blob/develop/REFERENCE.md
谢谢。
答案 0 :(得分:0)
“停滞”工作与“失败”工作之间有区别。根据{{3}},在以下情况下,作业被视为已停顿:
maxStalledCount 是一种安全措施,因此有问题的作业不会无限期地重新启动。
如果要处理失败的作业,则尝试选项指定尝试次数。
关于您的期望行为:
稍后,使用以下命令收集一系列失败的作业:
const failedJobs = cacheQueue.getFailed();
使用以下方法重试失败的作业:
failedJobs.forEach(job => job.retry());