Skip to content

Easily generate cron-expressions, schedule periodic cron jobs as well as time specific tasks.

License

Notifications You must be signed in to change notification settings

nasriyasoftware/NasriyaCron

Repository files navigation

N|Solid

NasriyaCron.

Static Badge Repository Size Last Commit Status

Visit us at www.nasriya.net.

Easily generate cron-expressions, schedule periodic cron jobs as well as time specific tasks. Made with ❤️ in Palestine 🇵🇸


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:

  1. time: A timestamp number, an ISO date, or a Date instance.
  2. task: a function.
// 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.

About

Easily generate cron-expressions, schedule periodic cron jobs as well as time specific tasks.

Topics

Resources

License

Security policy

Stars

Watchers

Forks