基于Redis 的任务队列Bull -- (八)stalled job

本文介绍了Bull任务队列如何处理因锁丢失而变为停滞状态的job,包括moveUnlockedJobsToWait选项用于检测并处理停滞任务,通过lua脚本进行job状态检查,并详细阐述了job从active到stalled再到可能失败的流程。同时,文章揭示了stalled队列的生成原理,即在每次执行stalled check后,将active队列的job id批量转移到stalled队列。
摘要由CSDN通过智能技术生成

bull将丢失锁的 job 称为停滞 job,认为这些 job 因为某些原因导致执行不成功,且还在active状态

在初始化设置中有两个选项来处理停滞 job

/** 检查停滞作业的频率(使用 0 表示从不检查),默认30s */
 stalledInterval?: number | undefined;

/** 重新处理停滞作业的最大次数,超过次数则标记为失败,默认1 */
 maxStalledCount?: number | undefined;

moveUnlockedJobsToWait用于定时检测停滞任务,根据设置将它们重新推入wait队列或者标记为失败

startMoveUnlockedJobsToWait 启动了定时任务来执行它

Queue.prototype.startMoveUnlockedJobsToWait = function() {
  clearInterval(this.moveUnlockedJobsToWaitInterval);
  if (this.settings.stalledInterval > 0 && !this.closing) {
    this.moveUnlockedJobsToWaitInterval = setInterval(
      this.moveUnlockedJobsToWait,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

afan_coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值