微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bull 队列重试被推到尾部,而不是头部

如何解决Bull 队列重试被推到尾部,而不是头部

使用公牛队列。我有一个限速队列。考虑到速率限制和退避策略,我希望尽快在队列中重试失败的作业。情况似乎并非如此。失败的作业似乎被推送,并将在队列中的其他现有作业之后处理。 一个人为的例子:

const Bull = require('bull');
const queue = new Bull('test-queue',{
  limiter: {
    max: 1,duration: 1000
  }
});

queue.process(async ({ data,id }) => {
  let {fail = false} = data;
  console.log(`processing job ${id}`);

  if (fail) {
    throw new Error('Queue test error');
  }

  return `${id} completed`;  
});

queue.add({fail: true});
for(let i = 0; i < 10; i++) {
  queue.add({});
}

这总是会在第一次处理后产生作业,然后重试失败的作业。根据牛市的说法,这不应该发生。我的实现有错吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。