Declare actions.js
var scheduler = require('../lib/scheduler');
scheduler.registerAction('make-call', function(job, done) {
twilio.makeCall(job.data, function(error) {
if (error) {
logger.error('Could not place call for job #' + job.id, error);
done('failed');
} else {
logger.info('Made call successfully', job);
done('completed');
}
});
});
In worker
var require('./actions');
var require('./scheduler');
scheduler.runAll(function(error, stats){
// stats => { started: 2, completed: 0, failed: 2 }
});
So to implement more scheduled events we would just registerAction() and enqueue jobs. The worker would pretty much just run all registered actions and format the stats