【问题标题】:Remove job after it is complete in Node Bull is not working在 Node Bull 中完成后删除作业不起作用
【发布时间】:2021-04-30 17:49:57
【问题描述】:

我正在使用节点公牛进行调度。现在对于我的工作,我将一个 cron 时间传递给它(这是一个特定的时间和日期)。现在,因为我提供了一个严格的 cron,所以它必须只运行一次,或者即使它运行第二次,也必须将它从队列中删除(我提供了 removeOnComplete: true)。

但它仍然没有被删除,它再次运行,我的队列再次处理这项工作。所以我想阻止它。

我的add job函数:(data是我的job数据,timings是我的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.js


【解决方案1】:

我可以建议你使用 node-schedule 包来安排 cron 时间。其实用起来很简单

    const schedule = require('node-schedule');

    const job = schedule.scheduleJob('* * * * *', function(){
        console.log('Job runned.');
        job.cancel();
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2020-02-03
    • 2019-07-28
    • 2014-12-24
    相关资源
    最近更新 更多