@knowark/schedularkjs
v0.3.1
Published
Job Scheduling Library
Downloads
134
Readme
Schedulark
Job Scheduling Library
Usage
First, you should define your jobs so that they can be registered, referenced and dispatched by your application. A Job is an object with an execute(context) method which holds the information required by the scheduler to enqueue and process it.
import { Job } from '@knowark/schedulark/lib/index.js'
class MaintenanceJob extends Job {
async execute(self, context) {
const number = context.number || 1000
let [first, second] = [0, 1]
while (first < number) {
first = second
second = first + second
}
return { data: first }
}
}
Then you can create an Scheduler instance to control the arrangement and processing of its registered jobs.
import { Scheduler } from '@knowark/schedulark/lib/index.js'
const scheduler = new Scheduler()
scheduler.register(MaintenanceJob)
Finally, you might schedule (using cron expressions) one of the jobs you have previously registered so that it can be enqueued for execution.
scheduler.schedule('MaintenanceJob', {n: 777}, '0 0 * * *')
Summing up, the complete program using Schedulark would look like:
import { Job, Scheduler } from '@knowark/schedulark/lib/index.js'
class MaintenanceJob extends Job {
async execute(context) {
const number = context.number || 1000
let [first, second] = 0, 1
while (first < number) {
first = second
second = first + second
}
return { data: first }
}
}
function main () {
const scheduler = new Scheduler()
scheduler.register(MaintenanceJob)
scheduler.schedule('MaintenanceJob', {number: 765}, '0 0 * * *')
scheduler.start()
}
main()