typescript - NestJS Bull-köer - Saknad lås för jobb misslyckades
Jag använder Bull med NestJS för att hantera en jobbkö. I processhanteraren vill jag markera ett jobb som misslyckat istället för slutfört, men det verkar - även efter att ha läst dokumentationen - att Job#moveToFailed()-metoden endast är tillåten för väntande jobb.
Faktum är att det utlöser ett felmeddelande som säger "Saknad lås för jobb $ {jobId} misslyckades". Men, att anropa Job#moveToFailed med ignoreLock-parametern satt till true går allt bra.
Vad händer om jag ignorerar låset och flyttar ett jobb till misslyckat? Finns det någon bieffekt? I mitt scenario kommer köjobben alltid att tas om hand av samma @Processor.
Här är kodbiten jag kör för teständamål:
@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..
}
Svar #1
Du kan ange false som en token-parameter (det ignorerar tokenkontrollen).
await job.moveToFailed({ message: 'Hook marked as failed because of missing data' }, false)
Jag kunde lägga till '0' istället för false och det fungerade för mig, men parametertypen är Boolean som nämnts i kommentarerna nedan.
