Skip to content
Human friendly cron for Node JS 💘
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
LICENSE
README.md
index.js
package-lock.json
package.json

README.md

node-reel logo

npm

node-reel logo

node-reel is a heavily inspired by laravel task scheduler syntax thanks to @taylorotwell and uses node-cron by merencia as the default cron driver to run cron tasks.

why node-reel ? 😉

const reel = require('node-reel')

reel().call(() => {
	// say hello on mondays
}).weekly().mondays().at('13:00').run()

reel().command('npm run clean_trash').everyThirtyMinutes().run()

Install

using the npm or yarn

npm i node-reel --save

Schedule Frequencies

Method Description
.cron('* * * * *'); Run the task on a custom Cron schedule
.everyMinute(); Run the task every minute
.everyFiveMinutes(); Run the task every five minutes
.everyTenMinutes(); Run the task every ten minutes
.everyFifteenMinutes(); Run the task every fifteen minutes
.everyThirtyMinutes(); Run the task every thirty minutes
.everyFortyFiveMinutes(); Run the task every forty five minutes
.hourly(); Run the task every hour
.hourlyAt(17); Run the task every hour at 17 mins past the hour
.daily(); Run the task every day at midnight
.dailyAt('13:00'); Run the task every day at 13:00
.twiceDaily(1, 13); Run the task daily at 1:00 & 13:00
.weekly(); Run the task every week
.weeklyOn(1, '8:00'); Run the task every week on Tuesday at 8:00
.monthly(); Run the task every month
.monthlyOn(4, '15:00'); Run the task every month on the 4th at 15:00
.quarterly(); Run the task every quarter
.yearly(); Run the task every year
.weekdays(); Limit the task to weekdays
.sundays(); Limit the task to Sunday
.mondays(); Limit the task to Monday
.tuesdays(); Limit the task to Tuesday
.wednesdays(); Limit the task to Wednesday
.thursdays(); Limit the task to Thursday
.fridays(); Limit the task to Friday
.saturdays(); Limit the task to Saturday

link to laravel task scheduler doc : task scheduler

Methods

Method Description
.call(function) pass a callback which will triggered
.command(string/array); pass cli commands as string or array of strings
.run(); call this at the end of the chain to initiate.

Adapters

node-reel will use node-cron as default adapter. but you can pass your own adapter and return your own object.

const Reel = require('node-reel').Reel;

const reel = new Reel({
    adapter : (object) => {
    	// use your cron library or custom cron logic
    	// below are the available properties
    	let expression = object.expression;
    	let callback = object.callback;
    	let timezone = object.timezone;
    	
    	return mycron.schedule(expression, callback);
    }
})


// use it as follows
reel.command('npm run foo').hourly().run();

Notes

issues, pull request and feedback are welcome ! Happy Scheduling !!

You can’t perform that action at this time.