@nasriya/cron
v1.0.7
Published
A package to schedule cron-jobs
Downloads
32
Readme
NasriyaCron.
Visit us at www.nasriya.net.
Easily generate cron-expressions, schedule periodic cron jobs as well as time specific tasks.
Made with ❤️ in Palestine 🇵🇸
[!IMPORTANT] 🌟 Support Our Open-Source Development! 🌟 We need your support to keep our projects going! If you find our > work valuable, please consider contributing. Your support helps us > continue to develop and maintain these tools.
Every contribution, big or small, makes a difference. Thank you for > your generosity and support!
You can schedule cron jobs to run periodically or at specific times.
Notes:
- NasriyaCron is part of HyperCloud's HTTP2 server framework.
Quick Start Guide
Installation
npm i @nasriya/cron
Importing
To use the cron scheduler, you must first import the cron-manager instance: Import in ES6 modules:
import cronManager from '@nasriya/cron';
Import in CommonJS (CJS)
const cronManager = require('@nasriya/cron').default;
Usage
Generate Time Expressions
Use the time
module on the cron manager to easily generate cron-expressions.
// Runs every 5 minutes
const expression1: string = cronManager.time.every(5).minutes();
// Runs every Monday and Tuesday
const expression2: string = cronManager.time.onSpecificDays(['Tue', 2]);
Schedule a Periodic Task
To schedule tasks using a cron-expression, use the schedule
method:
const task: ScheduledTask = cronManager.schedule('* * * * *', () => {
console.log('A cron-job is running...');
}, {
name: 'test_task', // (Optional) The name of the task
timezone: 'Asia/Jerusalem', // (Optional) The timezone the task will run at
runOnInit: false // (Optional) Set to "true" to run immediately
})
The schedule
method returns a ScheduledTask
type:
interface ScheduledTask {
name: string;
start: () => void;
stop: () => void;
}
Schedule a One-Time Task
To schedule one-time tasks use the scheduleTime
method. The method takes two arguments:
time
: A timestampnumber
, an ISO date, or aDate
instance.task
: afunction
.
// Schedule a task to run after 10 minutes from now:
const tenMins = 10 * 60 * 1000;
const task: ScheduledTimedTask = cronManager.scheduleTime(Date.now() + tenMins, () => {
console.log('Ten minutes has elapsed since the task was first scheduled')
})
The scheduleTime
method returns a ScheduledTimedTask
type:
interface ScheduledTimedTask {
name: string;
cancel: () => void;
invoke: () => void;
}
License
Please read the license from here.