horse-generator
Version:
horse generator for node framework
1 lines • 1.42 kB
JavaScript
;var config=require("../config/env"),kue=require("kue"),kueUi=require("kue-ui");kueUi.setup({apiURL:"/kue-api",baseURL:"/kue-ui",updateInterval:5e3});var options={prefix:"horse_q",redis:{host:config.redis.host,port:config.redis.port},skipConfig:!1,restore:!0},jobs=kue.createQueue(options),Job=kue.Job,minute=6e4;function handleEmail(){jobs.process("email",10,function(e,o){o()})}function sendEmail(){jobs.create("email",{title:"Account expired",to:"hongfeiliuxing@qq.com",template:"expired-email"}).delay(10*minute).priority("high").save();var e=jobs.create("email",{title:"Account renewal required",to:"hongfeiliuxing@qq.com",template:"renewal-email"}).delay(minute).priority("high").attempts(3).save();e.on("promotion",function(){console.log("renewal job promoted")}),e.on("complete",function(){console.log("renewal job completed")}),e.on("failed attempt",function(e,o){console.log(e)}).on("failed",function(e){console.log(e)})}function shutDownJobs(){setTimeout(function(){console.log("[ Shutting down when all jobs finish... ]"),jobs.shutdown(function(e){console.log("[ All jobs finished. Kue is shut down. ]"),process.exit(0)})},4200)}jobs.on("job complete",function(e){Job.get(e,function(e,o){e||o.remove(function(e){if(e)throw e;console.log("removed completed job #%d",o.id)})})}),module.exports=function(e,o){kue.app.set("title","HorseMQ"),e.use("/kue-api/",kue.app),e.use("/kue-ui/",kueUi.app)};