Options
All
  • Public
  • Public/Protected
  • All
Menu

@egomobile/jobs

npm last build PRs Welcome

@egomobile/jobs

Easy to use job scheduler helpers, which are compatible with Node.js 12 or later.

Install

Execute the following command from your project folder, where your package.json file is stored:

npm install --save @egomobile/jobs

Usage

Quick example

First make a sub directory, lets say /jobs, where your job script files will be stored.

The create a file, called myJob.ts, and start with the following skeleton:

import { IJobConfig, IJobExecutionContext, JobAction } from "@egomobile/jobs";

// the action that is executed on every tick
const onTick: JobAction = async ({ file, time }: IJobExecutionContext) => {
console.log("Job in file", file, "is executed on", time);
};

const config: IJobConfig = {
onTick,

// run the job directly, after it has been initialized
runOnInit: true,
// s. https://github.com/node-schedule/node-schedule#cron-style-scheduling
time: "42 * * * * *",
};

export default config;

In the entry point of your application, lets say /index.ts, use one of the functions loadAndStartJobs() or loadAndStartJobsSync() to load, init and start all jobs in the directory:

import path from "path";
import { loadAndStartJobs } from "@egomobile/jobs";

async function main() {
const jobs = await loadAndStartJobs({
// all script files are stored in
// /jobs sub folder
dir: path.join(__dirname, "jobs"),

// only use TypeScript files
filter: ".ts",

// custom timezone
timezone: "Europe/Berlin",
});

console.log(
String(jobs.length),
"jobs have been loaded, initialized and started",
);
}

main().catch(console.error);

Credits

The module makes use of:

Documentation

The API documentation can be found here.

Generated using TypeDoc