基于Redis 的任务队列Bull -- (十六)backoff

Bull任务队列在添加job时,允许设置backoff选项来定义失败时的重试策略。当job执行失败,系统会根据预设的策略计算延迟时间(delay),决定是否立即重试、延迟重试或终止。内置策略包括固定延迟(fixed)和指数延迟(exponential)。此外,用户还可以自定义策略函数,通过队列配置传入。自定义策略通常需要根据尝试次数和错误信息返回合适的delay值。
摘要由CSDN通过智能技术生成

bull 在add job 时,有一个 backoff 选项,用于指定当 job 失败时的退避策略

backoff?: number | BackoffOptions | undefined;

interface BackoffOptions {
    /** 策略类型,可以是自定义类型,也可以是内建类型  fixed / exponential */
    type: string;
    /** 退避延迟,由退避策略函数使用 */
    delay?: number | undefined;
    /** 定制策略选项 */
    options?: any;
}

具体的说,当 job 失败时会根据策略函数,得到一个 delay 值

根据 delay 来决定让 job 失败 / 重试 job / 延迟 job

    const delay = await backoffs.calculate(....);
    if (delay === -1) {
      moveToFailed = true;
    } else if (delay) {
      ...
      multi.moveToDelayed(args);
      command = 'delayed';
    } else {
      multi.retry
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

afan_coding

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

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

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

打赏作者

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

抵扣说明:

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

余额充值