问题描述
使用公牛队列。我有一个限速队列。考虑到速率限制和退避策略,我希望尽快在队列中重试失败的作业。情况似乎并非如此。失败的作业似乎被推送,并将在队列中的其他现有作业之后处理。 一个人为的例子:
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 (将#修改为@)