Unleash awesomeness. Private packages, team management tools, and powerful integrations. Get started with npm Orgs »

bella-scheduler

1.2.2 • Public • Published

bella-scheduler

Lightweight util for handling schedule in your Node.js and browser apps.

NPM Build Status codecov Dependency Status NSP Status

Setup

Usage

import {
  once,
  every,
  daily
} from 'bella-scheduler';

once('5s', () => {
  console.log('Resolved task.');
});

every('sunday 8:00', () => {
  console.log('Resolved a task on Sunday at 8 AM.');
});

daily('15:00', () => {
  console.log('Resolved a daily task at 3 PM...');
});

APIs

  • .every(String pattern, Function callback)
  • .once(String pattern, Function callback)
  • .hourly(String pattern, Function callback)
  • .daily(String pattern, Function callback)
  • .monthly(String pattern, Function callback)
  • .yearly(String pattern, Function callback)
  • .unregister(String taskId)

Almost cases you can use this library instead of setInterval or setTimeout, because it runs only one timer for the entire process. Regarding parameter "pattern" for .every(), it may be:

1, A string in the format of 'Y m d h i s'.

For example:

- .every('2040 05 16 15 30 10', callback);
   --> run callback at 15:30:10 on May 16, 2040
- .every('* 05 16 15 30 10', callback);
   --> run callback at 15:30:10 on May 16 of years
   --> similar to yearly('05 16 15 30 10', callback)
- .every('* * 16 15 30 10', callback);
   --> run callback at 15:30:10 on the 16th of months
   --> similar to monthly('16 15 30 10', callback)
- .every('* * * 15 30 10', callback);
   --> run callback at 15:30:10 of days
   --> similar to daily('15 30 10', callback)
- .every('* * * * 30 10', callback);
   --> run callback at the 10th second of the 30th minute of hours
   --> similar to hourly('30 10', callback)
- .every('* * * * * 10', callback);
   --> run callback at the 10th second of minutes.

2, A string in the format of 'weekday H:i:s'.

For example:

- .every('sunday 15:30:10', callback);
   --> run callback on Sundays at 15:30:10
- .every('sunday 15:30', callback);
   --> run callback on Sundays at 15:30:00
- .every('sunday 15', callback);
   --> run callback on Sundays at 15:00:00

It's possible to use "sun" instead of "sunday", "mon" for "monday", and so on.

3, A string in the format of 'N unit'.

For example:

- .every('5m', callback)
   --> call callback every 5 minutes
- .once('5m', callback)
   --> call callback in 5 minutes, then stop

The available units: d (days), h (hours), m (minutes), s (seconds).

The method .once() do the same thing as .every(), but just once. The 4 remain methods yearly(), monthly(), daily(), hourly() can be looked as the shortcuts of every().

.unregister(taskId)

Remove a task from scheduler.

Returns true if successfull removing.

let taskId = scheduler.every('5m', callback);
scheduler.unregister(taskId);

Test

git clone https://github.com/ndaidong/bella-scheduler.git
cd bella-scheduler
npm install
npm test

License

The MIT License (MIT)

install

npm i bella-scheduler

Downloadsweekly downloads

324

version

1.2.2

license

MIT

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability