珠峰培训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()

 

posted @ 2017-08-14 15:11  刘金宇  阅读(275)  评论(0编辑  收藏  举报