0.8.0 • Published 2 years ago

@egomobile/jobs v0.8.0

Weekly downloads
-
License
LGPL-3.0
Repository
github
Last release
2 years ago

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.

0.8.0

2 years ago

0.7.1

2 years ago

0.7.0

2 years ago

0.6.2

2 years ago

0.3.0

2 years ago

0.5.0

2 years ago

0.3.2

2 years ago

0.4.0

2 years ago

0.3.1

2 years ago

0.6.1

2 years ago

0.6.0

2 years ago

0.5.1

2 years ago

0.3.3

2 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago