timr

cron like job scheduling library

timr

timr offers a scheduling interface for a cron like job execution.

npm install timr
var moment = require('moment');
 
var timr = require('timr');
 
var scheduler = timr();
 
////every 15 seconds 
scheduler().every(15).seconds().run(function() {
    console.log( 'every 15 seconds' );
});
 
//start 30 seconds from now, execute every 10 seconds, end in 5 minutes from now 
var from = moment().add('seconds', 30);
var to = moment().add('minutes', 5);
 
scheduler()
    .from(from)
    .to(to)
    .every(10).seconds()
    .run(function() {
        console.log( 'now+30s every 10s until now+5m' );
    });

a scheduler holds a collection of tasks. every task is created via the task construction function.

var timr = require('timr');
 
var taskConstructor = timr();

the scheduler object is exposed at the task constructor:

var timr = require('timr');
 
var taskConstructor = timr();
 
console.log( taskConstructor.scheduler );

when a attached task is executed, the parent scheduler also emits a execution event

var timr = require('timr');
 
var taskConstructor = timr();
 
//...create some tasks... 
 
taskConstructor.scheduler.on('execute', function(nametask) {
    //universal handler for all tasks attached to the scheduler 
});

tasks geht automatically attached to the parent scheduler object

var myTask = taskConstructor();

there are multiple ways of invoking a task.

creates the task, configures it to run every minute and runs the callback assigned in the run handler

taskConstructor().every().minute().run(function() { ... });

creates the task, configures it to run every minute and runs each callback.

taskConstructor()
  .every().minute()
  .run(function() { ... })
  .run(function() { ... })
  .run(function() { ... });

creates the task, configures it to run every minute and runs the callback assigned in the run handler.

run has to be called.

var myTask = taskConstructor().every().minute();
 
myTask.on('execute', function() {
  // ... 
});
 
myTask.on('execute', function() {
  // ... 
});
 
myTask.run();

creates the task, configures it to run every minute and runs the callback assigned in the run handler.

run has to be called.

taskConstructor().every().minute().run();
taskConstructor().every(2).hours().run();
 
taskConstructor.scheduler.on('execute', function(nametask) {
  // gets invoked every minute and every second hour 
});

npm test