sails.js 使用node-cron模組,監聽訂單狀態併發送訊息到企業微信
阿新 • • 發佈:2019-01-06
設計思路:
1、建立任務時分配一個請求令牌
2、執行任務時,傳送令牌進行驗證,並更新令牌(令牌用一次就失效)
3、驗證通過後,查詢訂單狀態,根據訂單屬性,傳送相應的訊息到企業微信
建立任務
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); }
});
}
});
如果您有任何疑問,歡迎留言