Tho*_*mas 24 javascript cron node.js
是否有可能在node.js中的某一特定时间定期调用函数?我的第一次实施是
setInterval(functionName(),(24*60*60*1000));
Run Code Online (Sandbox Code Playgroud)
这不是最理想的,因为每次重新启动节点时它都会重新启动.是否有更好的可能性来实现这一点?
Ray*_*nos 21
要防止重新启动,您需要创建持久数据存储作业.
就像是 :
Job = {
_id: Number,
job: String,
dueDate: Date,
completed: Boolean
}
Run Code Online (Sandbox Code Playgroud)
然后有一些代码如下:
var createJob = function(url, date) {
var j = db.create(Job, function(j) {
j.job = url;
j.dueDate = date;
j.save();
});
};
var runJob = function(j) {
var id = j._id;
setInterval(j.dueDate - Date.now(), function() {
db.getOne(Job, { _id : id }, function(j) {
require(j.job);
j.finished = true;
j.save();
});
});
j = null;
};
Run Code Online (Sandbox Code Playgroud)
在启动时,您只需要执行以下操作:
db.get(Job, { finished: false }, function(jobs) {
jobs.forEach(runJob);
});
Run Code Online (Sandbox Code Playgroud)
db用MongoDB,CouchDB,Redis等替换泛型.
| 归档时间: |
|
| 查看次数: |
17256 次 |
| 最近记录: |