节点计划撤消取消
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
希望对您有所帮助。
一段时间以来我第一次使用 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
希望对您有所帮助。