【发布时间】:2022-08-06 23:52:55
【问题描述】:
我正在使用 Bull 和 NestJS 来处理作业队列。在流程处理程序中,我想将作业标记为失败而不是已完成,但似乎 - 还阅读了文档 - Job#moveToFailed() 方法只允许在等待的作业中使用。
实际上,它会触发错误提示“作业 ${jobId} 的锁丢失失败”。
但是,使用 ignoreLock 参数调用 Job#moveToFailed 为 true 一切正常。
如果我忽略将作业移动到失败的锁会发生什么?有什么副作用吗?在我的场景中,队列作业将始终由相同的@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..
}
-
设置
ignoreLockDOC -
当我写@EmptyBrain 时,是否有一些副作用告诉公牛忽略锁?
标签: typescript redis queue nestjs bull