Visit us at www.nasriya.net.
Made with ❤️ in Palestine 🇵🇸
Easily generate cron-expressions, schedule periodic cron jobs as well as time specific tasks.
[!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!
npm i @nasriya/cron
Import in ES6 module
import cron from '@nasriya/cron';
Import in CommonJS (CJS)
const cron = require('@nasriya/cron').default;
Use the time
module on the cron manager to easily generate cron-expressions.
// Runs every 5 minutes
const expression1: string = cron.time.every(5).minutes();
// Runs every Monday and Tuesday
const expression2: string = cron.time.onSpecificDays(['Tue', 2]);
To schedule tasks using a cron-expression, use the schedule
method:
const task: ScheduledTask = cron.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; // The name of the task
start: () => void; // Start/resume the task
stop: () => void; // Pause the task
destroy: () => Promise<void>; // Destroy the 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 = cron.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; // The name of the task
cancel: () => void; // Cancel the task
invoke: () => void; // Invoke the task
destroy: () => Promise<void>; // Destroy the task
}
This software is licensed under the Nasriya Open License (NOL), version 1.0. Please read the license from here.