node定时任务 我们再开发过程中,会经常碰见这样的场景例如每天早上八点执行一个操作或者执行一个爬虫,下面就说一下如何用node-cron处理这些定时任务。
安装node-cron 使用 cron值的范围。 Seconds: 0-59 (秒) Minutes: 0-59 (分钟) Hours: 0-23 (小时) Day of Month: 1-31 (天) Months: 0-11 (Jan-Dec) (月) Day of Week: 0-6 (Sun-Sat) (星期)
每隔十秒执行一次 1 2 3 4 5 6 7 8 9 var CronJob = require ('cron' ).CronJob;var job = new CronJob('*/10 * * * * *' , function ( ) { console .log("执行了" ) }, function ( ) { }, true );
每个工作日早上7点执行一次 1 2 3 4 5 6 7 8 9 var CronJob = require ('cron' ).CronJob;var job = new CronJob('00 00 7 * * 1-5' , function ( ) { console .log("执行了" ) }, function ( ) { }, true );
手动执行定时任务 1 2 3 4 5 6 7 8 9 10 11 12 13 14 var cron = require ('cron' );var job1 = new cron.CronJob({ cronTime : '* * * * * *' , onTick : function ( ) { console .log('开始工作' ); }, onComplete : function ( ) { console .log('停止工作' ) }, start : false }); job1.start();
手动停止定时任务 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 var cron = require ('cron' );var job1 = new cron.CronJob({ cronTime : '* * * * * *' , onTick : function ( ) { console .log('开始工作' ); }, onComplete : function ( ) { console .log('停止工作' ) }, start : false }); job1.start() setTimeout(() => { job1.stop(); } ,5002 );
捕获异常 1 2 3 4 5 6 7 try { new CronJob('invalid cron pattern' , function ( ) { console .log('this should not be printed' ); }) } catch (ex) { console .log("cron pattern not valid" ); }
以上提供了几种常用场景,更多使用可以去github查看api。
参考 https://github.com/kelektiv/node-cron