我有一项服务正在处理最多可能需要 24 小时的作业。当服务重新启动时,活动作业将停止并自动恢复。正如您可以想象的那样,该服务可能会在 24 小时内多次重新启动,因此我需要增加
maxStalledCount
,因为 1
不太可能足够。问题是我不知道需要在哪里设置该选项。它是WorkerOptions
的一部分,但我不知道它们设置在哪里:
https://api.docs.bullmq.io/interfaces/v5.WorkerOptions.html#maxStalledCount
由于我正在使用
NestJS
,我的工作人员扩展了 WorkerHost
,它有一个 Worker
,但不是 Worker
。它似乎是在内部创建的,我没有找到任何方法将 WorkerOptions
传递给它。
get worker(): T {
if (!this._worker) {
throw new Error(
'"Worker" has not yet been initialized. Make sure to interact with worker instances after the "onModuleInit" lifecycle hook is triggered for example, in the "onApplicationBootstrap" hook, or if "manualRegistration" is set to true make sure to call "BullRegistrar.register()"',
);
}
return this._worker;
}
来源:https://github.com/nestjs/bull/blob/master/packages/bullmq/lib/hosts/worker-host.class.ts
这是我迄今为止最好的线索,但我在文档中没有找到任何相关内容:https://docs.nestjs.com/techniques/queues
有人知道如何通过
maxStalledCount
实施 NestJS
来增加 BullMQ
吗?
通过阅读代码,我找到了答案:
@Processor('name', {
maxStalledCount: 10000,
})
我可能会提出 PR 将其添加到文档中。