2

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

4

1 回答 1

0

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

可能试试这个:

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

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

于 2021-03-19T03:25:03.790 回答