Scheduler4js is a library for scheduling tasks in Node.JS. This library makes easier to dynamically create cron jobs running on sql database from client side.


Keywords
scheduler, nodejs, sql, job, cron, runner, jobs, cron-job, cron-job-schedule, cron-jobs, task
License
MIT
Install
npm install scheduler4js@1.2.3

Documentation

Scheduler4js

Scheduler4js is a library for scheduling tasks in Node.JS. This library makes easier to dynamically create cron jobs running on sql database from client side.

Feature scheduler4js
Backend Postgresql/Mssql
Priorities
Concurrency
Global events
Atomic ops
Persistence
Supports long running jobs
Supports logging
Supports group jobs
Optimized for Jobs

Installation

npm i scheduler4js

Usage:

This library provides a schedule class that accepts a task function and a config representing when the task should be run.

Create db connection and library config to create instance of the library:

TS

import { Scheduler, Frequency, Timezone, CronUtil } from "scheduler4js";

JS

const { Scheduler, Frequency, Timezone, CronUtil } = require("scheduler4js");
async function example() {
  const dbConfig = {
    port: 5432,
    host: "localhost",
    username: "postgres",
    password: "password",
    dialect: "postgres",
    database: "scheduler4js",
    logging: false,
  };

  const config = {
    frequency: Frequency.ONCE_IN_HALF_MINUTE,
    lockLifetime: 6 * 1000,
    type: "x",
    kick: true,
  };

  const scheduler = await Scheduler.init({ dbConfig, config });

  scheduler.enqueueJob({
    name: "example",
    concurrency: 1,
    type: "x",
    timezone: Timezone.ASIA_DUBAI,
    cron: CronUtil.EVERY_X_MINUTE(1),
    lockLimit: 1,
    saveLog: false,
    priority: 0,
    fn: () => {
      console.log(`Job run at the time of ${new Date()}`);
    },
  });

  scheduler.on("begin", (job) => {
    console.log("begin", job);
  });

  scheduler.on("completed", (job) => {
    console.log("completed", job);
  });

  scheduler.on("fail", (err, job) => {
    console.log("fail", err, job);
  });
}

example();

API

Schedules a task to repeat at the specified date.

  • name: The name of the job
  • concurrency: The concurrency of the job
  • type: The type of the job which shows which executor should execute the given job
  • lockLimit: It shows the number of lock limit
  • fn: A function to run when the scheduled time arrives.
  • cron: It's cron expression representing the time to run the task again and again.
  • saveLog: It saves the result of the given jobs when they run
  • priority: Reorder jobs according to the given priority
  • frequency: It specifies the frequency which master cron job repeats in a minute
  • lockLifetime: It shows the lock life time of the jobs in ms
  • kick: To kick jobs to run

License

MIT