我刚进入Express,遇到了一个问题。我有一个提供REST API的应用程序。一切正常。但我想使用节点计划(https://www.npmjs.com/package/node-schedule)添加计划的作业。我已经实现了这个模块:
var schedule = require('node-schedule');
var scheduler = {
scheduleJob: function(monitor) {
var job = schedule.scheduleJob('* * * * *', function(){
monitor.check();
});
return job;
}
}
module.exports = scheduler;
Run Code Online (Sandbox Code Playgroud)
在app.js中,由于发现了一个类似的堆栈溢出问题,因此在底部添加了以下内容。这对我不起作用:
app.on('listening', function () {
console.log("App started, gathering monitors");
var allMonitors = queries.getAllMonitorsInt();
for (var i = 0; i < allMonitors.length; i++) {
console.log("Monitor found: " + allMonitors[i].name);
shdlr.scheduleJob(allMonitors[i]);
}
});
Run Code Online (Sandbox Code Playgroud)
我什至没有收到“应用已启动...”日志消息。
我是否以正确的方式进行操作?还是我偏离了目标?
调度程序应放在app.listen回调内部,如下所示:
app.listen(3000, function () {
console.log("App started, gathering monitors");
var allMonitors = queries.getAllMonitorsInt();
for (var i = 0; i < allMonitors.length; i++) {
console.log("Monitor found: " + allMonitors[i].name);
shdlr.scheduleJob(allMonitors[i]);
}
});
Run Code Online (Sandbox Code Playgroud)
Express不支持listening活动,请参阅问题。
| 归档时间: |
|
| 查看次数: |
2657 次 |
| 最近记录: |