我使用Bull和NestJS来处理作业队列。在流程处理程序中,我希望将作业标记为“失败”而不是“已完成”,但似乎--同时阅读文档--只允许在等待作业时使用Job#moveToFailed()方法。
实际上,它会触发一个错误,上面写着“作业${jobId}的锁丢失”。但是,使用Job#moveToFailed参数调用ignoreLock来实现一切都很好。
如果我忽略了将作业转移到失败的锁,会发生什么情况?有什么副作用吗?在我的场景中,队列作业总是被同一个@Processor使用。
这里是我为测试目的运行的代码:
@Process()
async transcode(job: Job<unknown>): Promise<any> {
const jobData = job.data as Record<string, string | unknown>
if (jobData == null) {
await job.moveToFailed({ message: 'Hook marked as failed because of missing data' })
return
}
// do other stuff for job execution..
}发布于 2022-08-06 15:52:55
我也遇到了同样的问题,对我起作用的是将'0‘作为令牌参数传递(忽略令牌检查)。
await job.moveToFailed({ message: 'Hook marked as failed because of missing data' }, '0')https://stackoverflow.com/questions/72489975
复制相似问题