我的节点 js 代码中有一个全局变量。我需要在每天午夜 12 点将其值重置为 1。在 node js 中是如何实现的?我已阅读有关节点调度程序的某些文章。它是否有效或有任何其他方法?
问问题
732 次
2 回答
1
您可以使用一个简单setTimeout()
的自己安排它:
let myVar = 10;
function scheduleReset() {
// get current time
let reset = new Date();
// update the Hours, mins, secs to the 24th hour (which is when the next day starts)
reset.setHours(24, 0, 0, 0);
// calc amount of time until restart
let t = reset.getTime() - Date.now();
setTimeout(function() {
// reset variable
myVar = 1;
// schedule the next variable reset
scheduleReset();
}, t);
}
scheduleReset();
任何时候你的程序启动,它都可以调用scheduleReset()
.
仅供参考,我从我编写的一个程序(在 Raspberry Pi 服务器上)中提取了大部分代码,该程序在每天凌晨 4 点重新启动,并且该程序已经成功地这样做了好几年。
于 2020-06-23T07:04:07.100 回答
0
使用node-schedule
它应该很简单。使用正确的 cron-tab定义您的作业,并将变量重置为scheduleJob
-callback 中的默认值:
const schedule = require('node-schedule');
let yourVar = 12345;
const globalResetJob = schedule.scheduleJob('0 0 * * *', () => {
yourVar = 1;
});
于 2020-06-23T06:56:52.270 回答