我已经在节点中设置了时间表:
function setTimer(time){
t_SD1.on_h = time.on_h;
t_SD1.on_m = time.on_m;
t_SD1.off_h = time.off_h;
t_SD1.off_m = time.off_m;
console.log(t_SD1.on_h+' '+t_SD1.on_m);
}
var j = schedule.scheduleJob({hour: t_SD1.on_h, minute: t_SD1.on_m}, function(){
console.log('ONNNN');
console.log('0 '+t_SD1.on_m+' '+t_SD1.on_h+' * * *');
});
时间来自:
var obj = JSON.parse(req.query.timer);
setTimer(obj);
声明:
var t_SD1 = {on_h: 14, on_m: 52, off_h: 14, off_m: 53};
好吧...现在的问题是
在没有setTimer()
的情况下启动它时,它工作正常。日程安排在14:52触发。但是,当我启动setTimer()
函数时,它不起作用。
我的控制台告诉我时间0 53 14 * * *
我也用parseInt(time.on_h)
尝试过,但结果相同。
答案 0 :(得分:0)
很难理解它在什么条件下会失败,但我认为问题出在您在scheduleJob()
之前调用setTimer()
的事实。我认为您需要将第一个示例调整为:
function setTimer(time){
t_SD1.on_h = time.on_h;
t_SD1.on_m = time.on_m;
t_SD1.off_h = time.off_h;
t_SD1.off_m = time.off_m;
console.log(t_SD1.on_h+' '+t_SD1.on_m);
var j = schedule.scheduleJob({hour: t_SD1.on_h, minute: t_SD1.on_m}, function(){
console.log('ONNNN');
console.log('0 '+t_SD1.on_m+' '+t_SD1.on_h+' * * *');
});
}