About corn
npm地址:https://www.npmjs.com/package/cron
用途:如Linux系统有一个定时执行任务的工具cron,cron作者实现了类似的功能。
使用这个模块
- 简单实用
/**
* Created by bamboo on 2016/4/15.
*/
var cronJob = require('cron').CronJob;
var job1 = new cronJob("* * * * * *", function () {
"use strict";
console.log("每1秒执行一次。。。。")
});
job1.start();
var job2 = new cronJob("*/5 * * * * *", function () {
"use strict";
console.log("每5秒执行一次。。。")
});
job2.start();
执行
npm install cron
node cron.js
执行结果
每1秒执行一次。。。。
每1秒执行一次。。。。
每1秒执行一次。。。。
每1秒执行一次。。。。
每1秒执行一次。。。。
每5秒执行一次。。。
每1秒执行一次。。。。
每1秒执行一次。。。。
每1秒执行一次。。。。
每1秒执行一次。。。。
- 参数使用
var CronJob = require('cron').CronJob;
var job = new CronJob({
cronTime: '00 30 11 * * 1-5',
onTick: function() {
/*周一到周五,每天中午十一点半执行任务
* Runs every weekday (Monday through Friday)
* at 11:30:00 AM. It does not run on Saturday
* or Sunday.
*/
},
start: false,
timeZone: 'America/Los_Angeles'
});
job.start();
- 定时更新任务
代码源自于实际项目,用于定时更新任务,即定时执行node update/all.js,其中根据pipe的形式,将更新代码输出。值得注意的是,在子进程的运行结果将被放在系统缓存中(最大为200KB),
var spawn = require("child_process").spawn;
var job = new cronJob("* * */30 * * *", function () {
"use strict";
console.log("开始执行定时更新任务");
var update = spawn(process.execPath, [path.resolve(__dirname, 'update/all.js')]);
update.stdin.pipe(process.stdout);
update.stderr.pipe(process.stderr);
//进程结束时触发close事件
update.on('close'