nodejs如何实现定时任务

所需模块:node-schedule,通过npm安装该模块。

npm install node-schedule

如何使用:

  • 固定时间点触发

    /**
    * 当时间秒数只要为20的时候就触发
    * schedule.scheduleJob(str,callback)
    * str : "秒、分、时、日、月、周几"
    */
    schedule.scheduleJob("20 * * * * *", function () {
        console.log("这是定时任务");
    });
    

    注意:周日用0或则7都可以。
    号:代表任意秒数触发,依次类推。
    eg:每周日6点30分执行任务str的写法:0 30 6
    * 0

  • 范围时间触发

    /**
    * 当秒数在1-10的时候就触发
    */
    schedule.scheduleJob("1-10 * * * * *", function(){
        console.log("定时任务,范围触发");
    });
    
  • 对象的写法

    /**
    * 对象的写法
    * {second:20,minute:20,hour:20,date:20,month:20,year:20,dayOfWeek:20}
    */
    schedule.scheduleJob({hour: 14, minute: 30, dayOfWeek: 0}, function(){
        console.log("Time for tea!");
    });
    
  • 关闭定时任务

    和clearTimeout方法一样,你要清楚哪一个定时任务就直接调用cancel()方即可。
    /**
    * 清除定时任务
    */
    var j = schedule.scheduleJob({hour: 14, minute: 30, dayOfWeek: 0}, function() {
        console.log("Time for tea!");
    });
    j.cancel();
    

转载请注明出处!

查看微博长图