该问题可能是由于在添加任务时未使用Bull队列的等待时间功能引起的。为了解决此问题,请检查您的代码是否正确使用Bull队列的等待时间功能。下面是一个使用等待时间的示例:
const Queue = require('bull');
const myQueue = new Queue('myQueue', {
redis: {
port: 6380,
host: '127.0.0.1',
},
});
myQueue.process(async (job) => {
// 长时间运行的任务
await new Promise((resolve) => setTimeout(resolve, 10000));
});
// 在队列中添加一个任务
const job = await myQueue.add({}, { jobId: 'myJob', timeout: 5000 });
// 监听任务完成事件
job.on('completed', () => {
console.log('任务已完成');
});
// 监听任务失败事件
job.on('failed', () => {
console.log('任务失败');
});
在上面的示例中,我们在添加任务时指定了一个等待时间(即timeout选项),该等待时间为5秒。如果任务在5秒内未能完成,则会自动失败。如果您的代码也使用了类似的方式,则可以解决该问题。