@egomobile/jobs
v0.8.0
Published
Easy to use job scheduler helpers.
Downloads
48
Readme
@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.