nodeJs node-schedule无法正常工作

时间:2018-06-08 06:58:43

标签: node.js scheduler

我正在使用node-schedule包来安排我的工作。我想在一天中的特定时间重新启动我的服务器,下面是代码:

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

    /**
     * This is used to restart the server after some interval
     * we are using pm2 (https://github.com/Unitech/pm2) to run server as process
     * when the server is closed, pm2 automatically restart the server
     */
    var restartInterval='* 4,8,12,16,20,23 * * *';
    var j = schedule.scheduleJob(restartInterval, function () {
        console.log("stopping server!!!!!");
        //Code to stop server
        try {
            process.exit(1);
        } catch (err) {

            console.log(err)
        }
    });

但调度程序行为不正常,当我在早上看到日志时,我注意到作业每分钟都在执行。我已经使用pm2在调度程序停止服务器时自动启动服务器。

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

以下是我认为的问题: 你的var restartInterval='* 4,8,12,16,20,23 * * *';实际上是在给定时间的每一分钟执行工作,所以一旦例如它是12点,你的服务器将在12点关闭,重新启动,在12点01分再次关闭,等......

我的猜测是你的日志只显示给定时间内每分钟的停止重启。

如果您想特定小时,请使用以下语法:

var restartInterval='00 4,8,12,16,20,23 * * *';

答案 1 :(得分:0)

更好地使用更简单的指定日程表的格式,例如,您可以使用下面的约定而不是cron表达式,这更易于管理:

/ *每周日凌晨2:30 * /

运行
cron.scheduleJob(**{hour: 2, minute: 30, dayOfWeek: 0}**, function(){
    console.log('This runs at 2:30AM on every Sunday');
});

如果您有一个利基用例,还有其他模块用于安排。

这可以在MIT许可下使用。

https://github.com/agenda/agenda

相关问题