【问题标题】:How to cancel jobs with node-schedule from a function如何从函数中取消具有节点计划的作业
【发布时间】:2017-10-18 01:49:39
【问题描述】:

我是 node.js 和一般编程的新手。我在 Node 中有一个函数,它从我的服务器的外部主文件调用,它计算一些日期并使用节点调度设置作业。

该函数在每次添加日期时运行。这意味着目前我的工作会被多次设置为相同的值。

我正在寻找一种方法来从这个函数之外取消我的作业,这样我以后可以从服务器的主文件中单独取消特定的作业。这是更新我的工作的功能。

exports.UpdateCron = function () {
  var date1 = new Date();

  var group1 = schedule.scheduleJob(date1, function(){
    console.log('group1 start');
  });
};

这是我想从我的主文件中调用的函数,但这里没有定义group1。有人可以解释我如何从第二个函数访问我的 Job group1,它是在第一个函数中定义的吗?

exports.DeleteCron = function () {  
  group1.cancel();
};

这两个函数都在包含节点调度的同一个文件中。

【问题讨论】:

  • 只需将group1 存储在可以从需要删除它的位置访问的数据结构中 - 在您的情况下,模块范围内的变量就足够了。
  • 这两个函数在同一个文件中。你能举个例子如何实现这一点。我对 node.js 很陌生 谢谢

标签: javascript node.js


【解决方案1】:

这有点旧,但我在自己寻找答案时发现了它。看来这只是一个范围问题。对于未来的读者,这应该可以解决 OP 的问题:

let group1;

exports.UpdateCron = () => {
  const date1 = new Date();

  group1 = schedule.scheduleJob(date1, () => {
    console.log('group1 start');
  });
};

exports.DeleteCron = function () {
  if (group1 && group1.cancel) group1.cancel();
};

【讨论】:

    猜你喜欢
    • 2019-08-30
    • 2016-05-03
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    相关资源
    最近更新 更多