cronut
v2.1.1
Published
Tasty task scheduler with a mungable internal clock filling.
Downloads
8
Readme
cronut
Tasty task scheduler with a mungable internal clock filling.
Install
$ npm install --save cronut
Usage
Schedule Tasks
import cronut from 'cronut';
const cron = cronut();
cron('0 0 0 * * *', () => {
console.log('another hour');
});
cron('0 0 * * * *', () => {
console.log('another minute');
});
cron('* * * * * *', () => {
console.log('another second');
});
cron('0 30 0,12 * * 1-5', () => {
console.log('12:30 AM and PM on weekdays');
});
Unschedule Tasks
const removeTask = cron('0 * * * * *', () => {
// only run 10 or so times
console.log('another second');
});
// Unschedule after 10 seconds
setTimeout(removeTask, 10000);
API
cronut()
Creates a new task scheduler.
import cronut from 'cronut';
const cron = cronut();
cron(pattern, task[, options]) : Function
cron.addTask(pattern, task[, options]) : Function
pattern
String
task
Function
options
Object
resolution
Number
Default:100
.
Patterns are any valid pattern supported by cron
. The task is the function to be executed at the appointed times. Returns a function to stop the task.
cron('* * * * * *', () => {
console.log('another second');
});
// same as
cron.addTask('* * * * * *', () => {
console.log('another second');
});
// removable
const removeTask = cron.addTask('* * * * * *', () => {
console.log('another second');
});
removeTask();
cron.now(fn)
fn
Function
Sets the moment.now
function and resets internal cron timers.
cron.now(() => {
// It's tomorrow! Heh heh.
return Number(new Date()) + (24 * 60 * 60 * 1000);
});
Why?
There are a bunch of task schedulers already available, but none of them allowed me to mess with the internal clock for timeline manipulation or testing purposes.
Contribute
Standards for this project, including tests, code coverage, and semantics are enforced with a build tool. Pull requests must include passing tests with 100% code coverage and no linting errors.
Test
$ npm test
© Shannon Moeller [email protected] (http://shannonmoeller.com)
Licensed under MIT