【问题标题】:node-schedule undoing cancellation节点调度撤消取消
【发布时间】:2018-10-25 07:18:32
【问题描述】:

我已经有一段时间第一次使用 node 并偶然发现node-schedule,这在很大程度上是轻而易举的,但是,我发现在通过作业取消后恢复计划任务.cancel() 相当困难。

为了记录,我正在使用计划在特定日期(非重复)执行特定操作,并且在某些情况下会在特定日期取消任务,但以后想恢复它。

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

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

【问题讨论】:

    标签: node.js schedule cancellation


    【解决方案1】:

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

    要取消取消工作,您必须给reschedule 一些选项。

    如果您不向reschedule 传递任何内容,此函数将返回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
    

    希望对你有帮助。

    【讨论】:

    • 谢谢,虽然这并不是我希望的功能,但它对我有很大帮助,因为我不知何故错过了你必须真正通过重新安排一个参数。我希望我可以什么都不传递,它只会撤消取消并在最初设置的时间执行任务,但是只需传递与该选项相同的日期再次适用于我的应用程序。
    猜你喜欢
    • 2016-01-11
    • 2019-07-14
    • 2017-01-09
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2021-02-04
    相关资源
    最近更新 更多