首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NestJS Bull队列-作业丢失锁失败

NestJS Bull队列-作业丢失锁失败
EN

Stack Overflow用户
提问于 2022-06-03 12:59:27
回答 1查看 1.4K关注 0票数 1

我使用Bull和NestJS来处理作业队列。在流程处理程序中,我希望将作业标记为“失败”而不是“已完成”,但似乎--同时阅读文档--只允许在等待作业时使用Job#moveToFailed()方法。

实际上,它会触发一个错误,上面写着“作业${jobId}的锁丢失”。但是,使用Job#moveToFailed参数调用ignoreLock来实现一切都很好。

如果我忽略了将作业转移到失败的锁,会发生什么情况?有什么副作用吗?在我的场景中,队列作业总是被同一个@Processor使用。

这里是我为测试目的运行的代码:

代码语言:javascript
复制
@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..
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-06 15:52:55

我也遇到了同样的问题,对我起作用的是将'0‘作为令牌参数传递(忽略令牌检查)。

代码语言:javascript
复制
await job.moveToFailed({ message: 'Hook marked as failed because of missing data' }, '0')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72489975

复制
相关文章

相似问题

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