今天就来说说使用NodeJs+Thinkphp完成各种自动化任务。
简单介绍下NodeJs:Node.js是一个ja
目前NodeJs在各大代码托管平台,基本上也是名列前茅。
首先,你要安装下nodejs,安装方法很简单,这里就不做赘述了,安装完后,由于使用的是CMD命令,所以建议安装下GIT,可能个人比较习惯使用GIT来写命令。
安装的事情,这里就不再多做描述了,直接进入今天的主题NodeJs 在Cron自动执行的应用。
先上一段代码:
var request = require('request'),
schedule = require('node-schedule'),
schedule.scheduleJob('30 * * * * *', function(){
console.log('-----------------'+ new Date() +'---------------------');
});
//解释下,上面这段代码执行,那么系统会每遇到每分钟的30秒,都会触发一次
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └ 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)
我们使用了非常著名的schedule来作为今天的主角,schedule还有很多种用法,如下: 1:指定时间执行
var schedule = require("node-schedule");
var date = new Date(2018,9,14,15,40,0);
var j = schedule.scheduleJob(date, function(){
console.log('-----------------'+ new Date() +'--------------------');
});
取消任务
j.cancel();
2:每小时固定时间
var rule = new schedule.RecurrenceRule();
rule.minute = 30;
var j = schedule.scheduleJob(rule, function(){
console.log('-----------------'+ new Date() +'-------------------');
});
3:某些时间执行
var rule = new schedule.RecurrenceRule();
rule.dayOfWeek = [0, new schedule.Range(1, 7)];
rule.hour = 20;
rule.minute = 0;
var j = schedule.scheduleJob(rule, function(){
console.log('---------------'+ new Date() +'------------------');
});
4:每秒执行
var rule = new schedule.RecurrenceRule();
var times = [];
for(var i=1; i<60; i++){
times.push(i);
}
rule.second = times;
var c=0;
var j = schedule.scheduleJob(rule, function(){
c++;
console.log(c);
});
相信以上的功能足够你进行拓展开发了。不过还是远远不够的,之前说了NodeJs基于Cmd命令运行,windows服务器一挂掉,就完了。任务定时就没了,那么怎么解决这个问题。
博主建议使用NoDeJs 的Pm2这个模块来做守护。
首先需要安装pm2:
npm install -g pm2
运行:
pm2 start app.js
完成。
以上我们就完成了,Windos下系统自动,定时,任务的操作。当然我们还可以拓展更多,比如集成下Thinkphp5.0的API开发,那就更加强大了。
作者博客:http://www.cojz8.com/
最佳答案
