重新启动后,使用node-schedule(永久使用)使计划任务保持不变

时间:2015-08-05 07:52:34

标签: node.js scheduled-tasks backgroundworker background-process forever

我想开发一个node.js程序,该程序将使用作业调度程序(node-schedule)在特定时间执行。 该程序使用forever(node.js模块)在后台运行。 这是我的app.js的内容:

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

〜  〜

var id =  request.body.id;
var scheduled = schedule.scheduledJobs;
if(scheduled[id]!=null){ 
//Tasks
}
else{ 
 scheduled[id].cancel;
 delete scheduled[id];
}

但如果app.js被任何原因杀死, schedule对象已删除。 有时app.js会永远重启。 我该如何处理节点计划对象?

1 个答案:

答案 0 :(得分:1)

我最近遇到过类似的问题,有两种解决方案:  1.使用实际的cron  2.使用数据库

我通过使用数据库解决了我的问题。每次创建一些事件时都将其保存到数据库。在app.js文件中,当应用程序启动时,make函数会读取数据库并相应地创建预定事件。

如果您没有动态任务,没有创建新任务或它们始终相同,则第一个选项会更好。