What is @breejs/later?
@breejs/later is a scheduling library for JavaScript that allows you to define complex schedules using natural language or cron-like syntax. It is useful for tasks that need to be executed at specific times or intervals.
What are @breejs/later's main functionalities?
Basic Scheduling
This feature allows you to define a schedule using natural language and execute a function at the specified intervals.
const later = require('@breejs/later');
// Define a schedule to run every 5 minutes
const sched = later.parse.text('every 5 mins');
// Execute a function based on the schedule
later.setInterval(() => {
console.log('This runs every 5 minutes');
}, sched);
Cron Scheduling
This feature allows you to define a schedule using cron syntax, which is useful for more complex scheduling needs.
const later = require('@breejs/later');
// Define a schedule using cron syntax
const sched = later.parse.cron('0 0 * * *'); // Every day at midnight
// Execute a function based on the schedule
later.setInterval(() => {
console.log('This runs every day at midnight');
}, sched);
Custom Intervals
This feature allows you to define custom intervals for scheduling tasks, providing flexibility for various use cases.
const later = require('@breejs/later');
// Define a custom schedule
const sched = later.parse.recur().every(2).hour().first().minute();
// Execute a function based on the custom schedule
later.setInterval(() => {
console.log('This runs every 2 hours at the first minute');
}, sched);
Other packages similar to @breejs/later
node-cron
node-cron is a lightweight task scheduler in pure JavaScript for Node.js based on the cron syntax. It is simpler and more focused on cron-based scheduling compared to @breejs/later.
agenda
agenda is a light-weight job scheduling library for Node.js. It offers MongoDB-backed persistence and is more suitable for complex job scheduling and management compared to @breejs/later.
node-schedule
node-schedule is a flexible cron-like and not-cron-like job scheduler for Node.js. It supports both cron and non-cron syntax, similar to @breejs/later, but with a different API and feature set.
@breejs/later
This project is a maintained fork of Later, as I needed it to be maintained and modernized for Bree. Later is a library for describing recurring schedules and calculating their future occurrences. It supports a very flexible schedule definition including support for composite schedules and schedule exceptions. Create new schedules manually, via Cron expression, via text expressions, or using a fully chainable API.
Table of Contents
Features
Types of schedules supported by Later:
- Run a report on the last day of every month at 12 AM except in December
- Install patches on the 2nd Tuesday of every month at 4 AM
- Gather CPU metrics every 10 mins Mon - Fri and every 30 mins Sat - Sun
- Send out a scary e-mail at 13:13:13 every Friday the 13th
Documentation
See https://breejs.github.io/later/ for complete documentation and usage.
Install
npm:
npm install @breejs/later
Usage
Node
const later = require('@breejs/later');
console.log(later);
Browser
VanillaJS
This is the solution for you if you're just using <script>
tags everywhere!
<script src="https://unpkg.com/@breejs/later"></script>
<script type="text/javascript">
(function() {
console.log(later);
})();
</script>
Bundler
Assuming you are using browserify, webpack, rollup, or another bundler, you can simply follow Node usage above.
Contributors
License
MIT © BunKat