occaecatidicta
Version:
58 lines (47 loc) • 1.68 kB
JavaScript
var schedule = require('../lib/schedule');
var cronTrigger = require('../lib/cronTrigger');
var jobMap = [];
var simpleJob = function(data){
var t = data.id+data.period;
console.log("run for simple job :" + data.id + " period: " + data.period + " at time " + (new Date()));
}
var cronJob = function(data){
console.log("run for cronJob :" + data.id + " at time " + (new Date()));
}
function scheduleSimpleJobTest(count){
var id = 0;
for(var i = 0; i < count; i ++){
var time = Math.ceil(Math.random() * 10 * 1000);
var period = Math.ceil(Math.random()*60 * 1000 + 100)
var id = schedule.scheduleJob({start:Date.now()+time,period:period}, simpleJob, {id:id++, period:period});
jobMap.push(id);
}
}
function scheduleCronJobTest(count){
var id = 0;
// var trigger = cronTrigger.decodeTrigger('* * 2-20 * * *');
for(var i = 0; i < count; i++){
var second = Math.floor(Math.random()*10);
var id = schedule.scheduleJob('0/2,2-10,13-20,40-45,55-56 * * * * *', cronJob, {id:id++});
jobMap.push(id);
}
}
function cancleJob(data){
var jobMap = data.jobMap;
if(jobMap.length>0){
var id = jobMap.pop();
console.log("Cancel job : " + id + " Last jobs count : " + jobMap.length);
data.schedule.cancelJob(id);
}else
console.log("All job has been cancled");
}
function scheduleCancleJobTest(){
var id = schedule.scheduleJob({start:Date.now(),period:100, count:jobMap.length}, cancleJob, {jobMap:jobMap,schedule:schedule});
}
function test(){
scheduleSimpleJobTest(5);
scheduleCronJobTest(5);
// scheduleCancleJobTest();
}
test();
//schedule.scheduleJob({period:30, count:4}, simpleJob, {name:'simpleJob'});