我需要从队列中删除特定的单个作业。实际情况是我已经将一个作业添加到队列中,然后在一些API调用中,我需要从队列中删除该单个作业。因此,将来不会重复。
增加:
const job = await this.locationQueue.add('alert', { handle, author, data }, { repeat: { every: 60000 } });
移除:
await this.locationQueue.removeRepeatable('alert', { jobId: request.jobKey, every: 60000 });
其中request.jobKey是job.id来自add的www.example.com。
3条答案
按热度按时间rkttyhzu1#
据我所知,在将其添加到队列时,您需要指定相同的
jobId
。2mbi3lxu2#
当在队列中添加新作业时,您需要为您的情况指定
jobId
,正如@Ayzrian的回答所提到的那样。但该jobId应该由您提供,而不是BullMQ为自己生成的jobId。
BullMQ生成的作业id是为了以后使用,当作业已经排队时。
在对可重复作业进行排队时提供的jobId应该与在删除相同的可重复作业时使用的jobId相同(沿着其他参数,如BullMQ文档中所述)。
rm5edbpk3#
首先,你需要使用指定的
jobId
创建你的作业:然后你可以像这样通过结合作业名称,id和delay来删除它:
请注意,延迟后指定了2个冒号。