安装
$ npm install node-schedule --save
demo
// 每分钟的30秒执行schedule.scheduleJob('30 * * * * *', function(){console.log('scheduleCronstyle:' + new Date());});
用法(通配符代表的含义)
1 2 3 4 5 6
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)
│ │ │ │ └───── month (1 - 12)
│ │ │ └────────── day of month (1 - 31)
│ │ └─────────────── hour (0 - 23)
│ └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)
- 6个占位符从左到右分别代表:秒、分、时、日、月、周几
每分钟的第30秒触发: '30 * * * * *'每小时的1分30秒触发 :'30 1 * * * *'每天的凌晨1点1分30秒触发 :'30 1 1 * * *'每月的1日1点1分30秒触发 :'30 1 1 1 * *'2016年的1月1日1点1分30秒触发 :'30 1 1 1 2016 *'每周1的1点1分30秒触发 :'30 1 1 * * 1'
- 高级用法
//注意:六个值之间使用空格分隔;如某个位置上有多个值可以使用逗号(m,n)分隔;如某个位置值是一个区间可以使用中划线(m-n);如某个位置的时间含有间隔执行可以使用斜线(*/n);如只有五位则默认秒为0,第一位从分钟开始计算。'0 17 * * 1-5':表示每周一至周五下午五点整执行一次;'*/5 12,18,21 * * 0,6':表示周六周日的12时、18时和21时,每个小时内每隔5分钟执行一次;'*/30 * * * * *': 每30秒执行一次
- 或者是用字面量的形式
//dayOfWeek//month//dayOfMonth//hour//minute//second// 每周1,16:11:00 触发schedule.scheduleJob({hour: 16, minute: 11, dayOfWeek: 1}, function(){console.log('scheduleObjectLiteralSyntax:' + new Date());});
取消定时任务
var j = schedule.scheduleJob('* * * * * *', function(){ c j c jconsole.log('定时器触发次数:' + counter);counter++;});// 取消定时器j.cancel();
