Javascript Node.js:除非服务器重新启动,否则后台作业不会重新启动

Javascript Node.js:除非服务器重新启动,否则后台作业不会重新启动,javascript,node.js,Javascript,Node.js,我是node.js的新手,如果这是一些琐碎的事情,请原谅 我试图在应用程序中集成Bull进行后台处理,并注意到当处理过程中发生错误时,作业不会重试,直到服务器重新启动。即使发生错误,作业仍保持在活动状态且未移动到失败状态 下面是我代码的相关部分 queue.js const Queue = require('bull'); const { setQueues } = require('bull-board'); const csvExportsQueue = new Queue('csv exp

我是node.js的新手,如果这是一些琐碎的事情,请原谅

我试图在应用程序中集成
Bull
进行后台处理,并注意到当处理过程中发生错误时,作业不会重试,直到服务器重新启动。即使发生错误,作业仍保持在
活动状态
且未移动到
失败状态

下面是我代码的相关部分

queue.js
const Queue = require('bull');
const { setQueues } = require('bull-board');
const csvExportsQueue = new Queue('csv exports');
setQueues([csvExportsQueue]);
module.exports = csvExportsQueue;
我正在收听失败和错误事件,但当异常发生时,它们似乎都没有被触发

worker.js
const csvExportProcessing = require('./queue');
const processExport = require('./process_export');

csvExportProcessing.process(function(job, done){
  processExport.performExport(job.data.params, done).catch(err => {
    console.log('in error handling'); // I see this outputted on the console
  });
});


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


csvExportProcessing.on('failed', function(job, err){
  console.log('failed');
});


csvExportProcessing.on('error', function(job, err){
  console.log('error');
});
因此,在端点
/exports
上接收到post请求,这将向队列中添加作业,下面是代码

const express = require('express');
const router = express.Router();
const exportCsv = require('./process_export');
const exportQueue = require('./queue');

router.post('/', (req, resp, next) => {
  console.log('received request...adding to the queue');
  exportQueue.add({params: req.body}, {attempts:5, backoff: 5000 });
  next();
});

module.exports = router;
我使用
npm start
启动服务器,它显示了下面的输出

> nodemon server.js

[nodemon] 2.0.3
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server.js`


如果能帮我解决这个问题,那就太好了。谢谢。

关于您的服务器代码,queue.js和worker.js是如何实现的?您好@1252748,我已经更新了我的问题,并提供了更多详细信息。您收到了哪些类型的错误?你想如何处理它们?嗨@1252748,我引入了一个错误,但是输入了一个变量名,我在代码
ReferenceError中看到了这个异常:myCsvData未定义
,我希望作业会重新启动,但它不会重新启动,直到我重新启动服务器,作业保持活动状态是的,它不会从javascript错误中恢复;我不熟悉Bull,但我猜它有一些内部机制来处理自己的错误,并将它们传递给一些可侦听事件,但它不会捕获您的语法错误显示queue.js和worker.js是针对您的服务器代码实现的吗?hi@1252748,我更新了我的问题,提供了更多的详细信息。您会遇到哪些类型的错误?你想如何处理它们?嗨@1252748,我引入了一个错误,但是输入了一个变量名,我在代码
ReferenceError中看到了这个异常:myCsvData未定义
,我希望作业会重新启动,但它不会重新启动,直到我重新启动服务器,作业保持活动状态是的,它不会从javascript错误中恢复;我不熟悉Bull,但我猜它有一些内部机制来处理自己的错误并将它们传递给一些可侦听事件,但它不会捕获您的语法错误