scheduler4js
v1.2.3
Published
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.
Downloads
68
Maintainers
Readme
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