设计思路:
1、创建任务时分配一个请求令牌
2、执行任务时,发送令牌进行验证,并更新令牌(令牌用一次就失效)
3、验证通过后,查询订单状态,根据订单属性,发送相应的消息到企业微信
cron模块地址 https://github.com/ncb000gt/node-cron
创建任务
var CronJob = require('cron').CronJob;
var jobname = 'task'+record.id;//自己定义任务名称
var globals = this.sails.config.globals;//全局变量
if(!globals[jobname] || globals[jobname].cronTime.source!=record.请求规则){
globals[jobname] = new CronJob(record.请求规则, function() {
require('http').get('请求地址?token=令牌',function(req,res){
record.令牌 = require('node-uuid').v1();
record.save(function(err){
if(err){ return next(err); }
});
});
}, null, false, 'Asia/Chongqing');//时区
}
if(record.状态==1){
globals[jobname].start();
}else{
globals[jobname].stop();
}
刷新任务
var globals = this.sails.config.globals;//全局变量
tasks.forEach(function (task) {
if(!globals['task'+task.id]){
task.状态 = 0;
task.令牌 = require('node-uuid').v1();
task.save(function(err){
if(err){ return next(err); }
});
}
});
企业微信的消息接口使用PHP来写,网上有相应的类库
参考:https://github.com/whh306318848/PHPToQyWeixin
如果您有任何疑问,欢迎留言