节点公牛队列错误:缺少作业类型 JOB_NAME 的进程处理程序

Posted

技术标签:

【中文标题】节点公牛队列错误:缺少作业类型 JOB_NAME 的进程处理程序【英文标题】:Node Bull Queue Error: Missing process handler for job type JOB_NAME 【发布时间】:2021-06-09 17:49:03 【问题描述】:

我正在创建节点公牛队列并将动态名称作为选项传递给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

【问题讨论】:

【参考方案1】:

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

不妨试试这个:

myQueue.add(`myJob-$val`,  lorem: "ipsum" , 
    attempts: 3,
    removeOnFail: true
);

如果我收到Missing process handler for job ___ 的相同错误,那是因为我在处理器运行之前添加了作业。当该问题不可避免时,将attempts(就像您所做的那样)增加到大于 1 的数字已修复它。但是,您将这些作业选项作为data 传递,因此attempts 不会影响您的队列。

【讨论】:

以上是关于节点公牛队列错误:缺少作业类型 JOB_NAME 的进程处理程序的主要内容,如果未能解决你的问题,请参考以下文章

用于队列和 api 的嵌套公牛单独进程

如何解决错误读取 ECONNRESET 公牛库

如何中止公牛队列中的特定任务?

awsglue.utils.GlueArgumentError:参数 --JOB_NAME 是必需的

Jenkins 仪表板 Build Executor Status 显示超过节点允许的作业

类型错误:new() 缺少 1 个必需的位置参数:'y'