Node.js 节点Bull队列错误:缺少作业类型job\u NAME的进程处理程序

Node.js 节点Bull队列错误:缺少作业类型job\u NAME的进程处理程序,node.js,asynchronous,redis,queue,bull-queue,Node.js,Asynchronous,Redis,Queue,Bull Queue,我正在创建节点bull queue并将动态名称作为选项传递给queue.add函数 myQueue.add(`myJob-${val}`, { attempts: 3, removeOnFail: true }); 我为上述工作定义流程名称,如下所示 myQueue.process(`myJob-${val}`, async (job, callback) => { try { console.log('Processing job', job.i

我正在创建节点bull queue并将动态名称作为选项传递给
queue.add函数

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

如何使用动态名称值正确定义处理器?

您的
.add()
的第二个参数不应该是作业数据吗?作为第二个参数传入的作业选项是正确的,但它们应该是第三个

可以尝试以下方法:

myQueue.add(`myJob-${val}`,{lorem:ipsum}{
尝试次数:3次,
removeOnFail:真
});
在我收到相同错误的情况下,
缺少作业的进程处理程序\uuuuuuuu
,这是因为我在处理器运行之前添加了作业。当该问题不可避免时,将
尝试次数
(就像您所做的那样)增加到大于1的数字已将其修复。但是,您将这些作业选项作为
数据
传递,因此
尝试
不会影响您的队列