Jobr is a simple, lightweight library that makes easy to create and manage recurrent jobs. Works in browser and node environment.
To install with npm, please execute following command;
npm install jobr
To install with yarn, please execute following command;
yarn add jobr
import { RecurrentJob } from "jobr";
const recurrentJob = new RecurrentJob({
name: "hello",
task: () => "hello world",
interval: 1000,
stopOnFail: false
});
const unsubscribe = recurrentJob.subscribe("success", (data) => {
console.log(data);
});
recurrentJob.start();
unsubscribe();
if you're just using <script> tags everywhere, use this solution.
<script src="https://unpkg.com/jobr"></script>
<script>
const recurrentJob = new jobr.RecurrentJob({
name: "hello",
task: () => "hello world",
interval: 1000
});
const unsubscribe = recurrentJob.subscribe("success", (data) => {
console.log(data);
});
recurrentJob.start();
unsubscribe();
</script>
Assuming you are using browserify, webpack, rollup, or another bundler, please follow Node usage above.
Name | Description |
---|---|
name | Job name (required) |
task | Function that will be invoked at spesified intervals (required) |
interval | Interval value in millisecond (required) |
stopOnFail | Setting true will stop the job if task fails (optional, default: false) |
Name | Description |
---|---|
start | Starts the job. If job already started, it will throw an error. |
stop | Stops the job. If job is not started, it will throw an error. |
subscribe | Register your listener for a job event. Returns unsubscribe callback. |
isRunning | Returns true if job is active |
Jobr comes with built-in eventing system, allows you to listen job state changes.
Name | Description |
---|---|
created | Will be invoked once job created. |
started | Will be invoked when job started. |
stopped | Will be invoked when job stopped. |
success | Will be invoked after task successfully executed. |
error | Will be invoked after task failed |
invoked | Will be invoked right before given task called |
This project follows semantic versioning.
[ ] Run tasks in worker
[ ] Support cron syntax
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.