node.js - 在 Node Bull 中完成后删除作业不起作用
问题描述
我正在使用节点公牛进行调度。现在对于我的工作,我将一个 cron 时间传递给它(这是一个特定的时间和日期)。现在,由于我提供了一个严格的 cron,那么它必须只运行一次,或者即使它运行第二次,也必须将其从队列中删除(我提供了 removeOnComplete: true)。
但它仍然没有被删除,它再次运行,我的队列再次处理这项工作。所以我想阻止这个。
我的添加工作功能:(数据是我的工作数据,计时是我的cron计时)
public async addJob(data: any, timings: any, jobId: any) {
console.log('adding job');
console.log(timings);
const job = await this.videoQueue.add(
{data: data},
{
repeat: {
cron: timings,
},
jobId: jobId,
removeOnComplete: true,
},
);
return job;
}
我的流程功能:
this.videoQueue.process(async (job: any) => {
// processing function for my job.
});
我是新节点和节点公牛。也许我犯了一个错误,但我无法调试它。
谢谢。
解决方案
我可以建议你使用node-schedule包来安排 cron 时间。实际上非常容易使用
const schedule = require('node-schedule');
const job = schedule.scheduleJob('* * * * *', function(){
console.log('Job runned.');
job.cancel();
});
推荐阅读
- azure - 如何使用 Azure ServiceBus 标准计划获得更好的性能
- angular - 如何添加到所有响应“Access-Control-Allow-Origin”标头?
- excel - 如何通过 Selenium VBA 向某些 HTML 元素发送文本?
- c++ - std::condition_variable::wait() 如何评估给定的谓词?
- html - CSS 适合视口内的 div,同时保持纵横比
- r - R中图像处理时的数据提取
- angular - 如何在 Angular 库中使用与 ng-packagr 捆绑的资产
- javascript - LitElement 使用 SVG 字符串构建嵌套 SVG 的渲染问题
- azure - 在 Azure 中的 VM 上设置 RabbitMq
- azure - 天蓝色管道多行脚本