0.1.2 • Published 10 years ago

gracenode-cron v0.1.2

Weekly downloads
1
License
MIT
Repository
github
Last release
10 years ago

gracenode-cron Module

Cron module for gracenode framework

This is designed to function within gracenode framework.

How to include it in my project

To add this package as your gracenode module, add the following to your package.json:

"dependencies": {
        "gracenode": "",
        "gracenode-cron": ""
}

To use this module in your application, add the following to your gracenode bootstrap code:

var gracenode = require('gracenode');
// this tells gracenode to load the module
gracenode.use('gracenode-cron');

To access the module:

// the prefix gracenode- will be removed automatically
gracenode.cron

##How to schedule a new task

In your config, make sure you have the schedule set for your task to run, for example:

    "modules:" {
		"cron": {
			"myCronJob": {
				"schedule": "*/30 * * * * *"
			}
		}
	}

On one of your machine, retrieve a Cron object like this:

var cron = gracenode.cron.create('myCronJob');

Next up you should add a callback to executed on each tick, if you're running a cluster of seperate nodes make sure that this is only executed on your master.

cron.addCallback(function() {
    console.log('I will show every 30 seconds!');
});

Finally, start the cronjob:

cron.start();

##Methods ###cron.create(name) Returns a new Cron object

var cron = gracenode.cron.create('myCronJob');

##Cron object ###constructor

var cron = new Cron('* * * * * *');

###cron.setTime(time) Set the time a cronjob should be executed, for example every 5 minutes:

cron.setTime('0 */5 * * * *');

###cron.addCallback(func) Add a callback to be executed on each tick

cron.addCallback(function () {
  console.log('I am executed on every tick!');
});

###cron.start() Start the cronjob, will executed a callback on every tick

cron.start();

###cron.stop() Stop the cronjob, will prevent each callback to be executed on every tick.

cron.stop();

###cron.getNextDate() Get a date object when the next tick will happen. The cronjob does not have to be running for this function to work.

var nextTick = cron.getNextDate();
console.log('Next tick will take place:', nextTick);

###cron.getSecondsRemaining() Get the seconds remaining until the next tick. The cronjob does not have to be running for this function to work.

console.log('The cronjob will execute in', cron.getSecondsRemaining(), 'seconds');