问题描述
我正在创建节点公牛队列并将动态名称作为选项传递给 Queue.add function
myQueue.add(`myJob-${val}`,{
attempts: 3,removeOnFail: true
});
我正在为上述作业定义如下进程名称
myQueue.process(`myJob-${val}`,async (job,callback) => {
try {
console.log('Processing job',job.id,job.data);
callback();
} catch (err) {
console.log(err);
}
});
但是,我收到以下错误
Job ID 1 Failed Error: Missing process handler for job type myJob-123
如何使用动态名称值正确定义 processor
?
解决方法
您对 .add()
的第二个参数不应该是作业数据吗?您作为第二个参数传入的工作选项是正确的,但它们应该是第三个。
可以试试这个:
myQueue.add(`myJob-${val}`,{ lorem: "ipsum" },{
attempts: 3,removeOnFail: true
});
如果我收到同样的 Missing process handler for job ___
错误,那是因为我在处理器运行之前添加了作业。当该问题不可避免时,将 attempts
(如您所做的)增加到大于 1 的数字已修复它。但是,您将这些作业选项作为 data
传递,因此 attempts
不会影响您的队列。