co-jobs
v1.0.2
Published
job manager with concurrency and prioritization
Downloads
5
Readme
Co Jobs
A job handler with concurrency and prioritization.
var jobs = require('jobs')()
jobs.concurrency = 5
co(function* () {
jobs.push('task1id', task1)
jobs.push('task2id', task2)
var result1 = yield jobs.await('task1id')
})
API
var jobs = Jobs([options])
Create a new jobs instance. Options:
concurrency: 1
jobs.concurrency=
Set the concurrency of the jobs.
var length = jobs.push([id], fn, [priority])
Push a job to be run.
fn
- currently jobs must be a thunk.id
- a unique job id as a string. Defaults to a random string.priority: 0
- a priority as a number.
var result = yield jobs.await(event)
Await the result of an event. All job ids are emitted as events. There are additionally these events:
drain
- when there are no more jobs to run
jobs.prioritize(id, priority)
If a job by id
exists, sets its priority to priority
.