珠峰培训node 珠峰爬虫| cron 定时任务
1、cron 定时任务 CronJob
var CronJob = require('cron').CronJob; // 秒 分钟 时 天 🈷️ 周 // 1-30 * * * * * 1到30秒执行 // 1,3,5 * * * * * 1、3、5的时候执行 // */5 * * * * * 每5秒 var job = new CronJob('*/5 * * * * *',function(){ console.log(new Date().toString()) }) job.start()
-------------------------------------
实际应用例子:
run.js
var i = 0; function set(){ i++ setTimeout(function(){ console.log(i) if(i<5){ set(); } },1000) }set();
任务文件 main.js
var CronJob = require('cron').CronJob; var child_process = require('child_process') // 秒 分钟 时 天 🈷️ 周 // 1-30 * * * * * 1到30秒执行 // 1,3,5 * * * * * 1、3、5的时候执行 // */6 * * * * * 每6秒 var job = new CronJob('*/6 * * * * *',function(){ var pro = child_process.spawn(process.execPath,['run.js']); // 把子进程的标准输出注入到当前主进程的标准输出 pro.stdout.pipe(process.stdout); pro.stderr.pipe(process.stderr); // 当子进程出错的时候 pro.on('error',function(err){ console.log(err); }) // 当子进程结束也关闭主进程 pro.on('close',function(){ console.log('pro is close!') process.exit(); }) }) job.start()