即使节点服务器重新启动,也要保留我的cron作业并执行它们

时间:2016-04-12 08:50:03

标签: node.js cron crontab cron-task

我的应用程序位于 node js 我希望他们按照预定的时间执行 但问题出现在之间,如果我的服务器崩溃/停止/重新启动,那么那些预定的作业就不会被持久化并且不会被执行。
此外,我的所有工作都只使用单个流程进行安排和执行,但我希望多个流程完成这项工作 即使我的服务器没有运行,我也希望我的所有工作都持久执行并执行,即使我的节点服务器重新启动或更好地执行它。

议程 - 使用我不想使用的mongoDB Node -scheduler - 无法保留cron作业

    var ctab = require('crontab');
    ctab.load(function(err, crontab) {
      var job = crontab.create('* * * * * *');
      var jobs = crontab.jobs();
      crontab.save(function(err, crontab) {
    });
});

var ctab = require('crontab'); ctab.load(function(err, crontab) { var job = crontab.create('* * * * * *'); var jobs = crontab.jobs(); crontab.save(function(err, crontab) { }); });

1 个答案:

答案 0 :(得分:3)

如果您使用MySQL,可以尝试使用此npm package

在其他情况下,您需要构建自己的解决方案。在这种情况下,我创建了一个集合/表来存储计划状态和规则。然后,如果服务崩溃或重新启动,您可以从数据库中获取所有计划,然后从app.listen事件重新启动它们。