节点计划撤消取消

node-schedule undoing cancellation

一段时间以来我第一次使用 node 并偶然发现了 node-schedule,这在很大程度上是轻而易举的,但是,我发现在之后恢复计划任务通过 job.cancel() 取消它非常困难。

郑重声明,我正在使用计划在特定日期(非经常性)执行特定操作,并且在某些情况下会在特定日期取消任务,但稍后想恢复它。

我首先尝试使用 job.cancel(true) 通过普通 job.cancel() 取消它,因为文档指出这将重新安排任务,但这对我不起作用。在首先取消作业后使用 job.reschedule() 会产生相同的结果。

我可能想出一个不优雅的解决方案,但我想我会先问问是否有人知道一个优雅的解决方案。

我花了点时间才明白node-schedule documentation^^

要取消取消任务,您必须给 reschedule 一些选项。

如果您不向 reschedule 传递任何内容,此函数 returns false(发生错误)

例如,您可以声明选项,并像这样传递此变量:

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

let options = {rule: '*/1 * * * * *'}; // Declare schedule rules

let job = schedule.scheduleJob(options, () => {
    console.log('Job processing !');
});

job.cancel(); // Cancel Job

job.reschedule(options); // Reschedule Job

希望对您有所帮助。