gpt4 book ai didi

javascript - 用于作业处理的 Bull 单独进程无法捕获队列中的事件

转载 作者:行者123 更新时间:2023-12-04 15:28:57 25 4
gpt4 key购买 nike

在我的 node.js 应用程序中,我正在使用 bull 模块实现后台作业处理。我需要捕获队列中的某些事件,例如 completedfailederror

我正在尝试为流程功能创建一个单独的流程,但问题是在将作业处理移动到流程功能之后我无法捕获任何事件,例如 completed失败错误

下面是我的代码

处理器.js

module.exports =  async function(job, done) {
try {
await processExport.performExport(job.data.params, done);
} catch(err) {
console.log(err);
console.log('in error handling');
};
}

worker.js

const csvExportProcessing = require('../queue');
csvExportProcessing.process(5, __dirname + '/processor.js');

csvExportProcessing.on('completed', function(job, result){
console.log('job is now completed');
});

csvExportProcessing.on('failed', function(job, err){
if(job.attemptsMade == job.opts.attempts) {
//send a postback
}
});


csvExportProcessing.on('global:error', function(job, err){
console.log('Is last attempt? => ', (job.attemptsMade === job.opts.attempts));
});

最佳答案

我能够使用下面的代码捕获事件,这里是捕获失败事件的相关代码

const myQueue =  process.env.NODE_ENV == 'development' ? new Queue('myqueuename') : new Queue('myqueuename', 'redis://redis:6379/13');
setQueues([myQueue]);
myQueue.on('failed', async function(job, err){
if(job.attemptsMade == job.opts.attempts) {
//do something
}
});

关于javascript - 用于作业处理的 Bull 单独进程无法捕获队列中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61677446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com