bullish
v0.7.0
Published
A nice bull queue interface for hapi.
Readme
bullish
Usage
server.bullish.job({
name: 'add5',
handler: (job) => {
// do job logic here, return a promise!
return Promise.resolve(job.data + 5);
},
config: {
validate: joi.number(),
}
}, next);bullish.job(options, [callback])
Defines a new job queue.
Has the following parameters:
optionsname– the queue namehandler– the handler that will be calledconfig– a optional config object containing:validate– a joi schema, used for input validationconcurrency– the max. concurrency for the handler (on a single process)pre– Experimental: an array of functions that will be called before the handler. Have to return Promises or be synchronous.routes– configure auto generated routes, can be one ofBoolean:false– disable auto route generationArray:['create', 'status', 'simulate']– Toggle specific routes to be generated
callback– a optional function called, when the queue is ready to be used.
server.bullish.job({
name: 'squareAll',
handler: (job) => job.data.map(num => num * num + job.pre[0]),
config: {
concurrency: 5,
pre: [ () => 0 ],
validate: joi.array().items(joi.number()).required(),
}
});bullish.add(jobName, [data], [options])
Adds a new job to the queue. Analog to bulls queue.add, but with validation.
Has the following options:
data– the data passed to the handler injob.data.options– allbulloptions and an extravalidateoption, to toggle validation.validate–Boolean: toggles input validation
server.bullish.add('sum', { a: 5, b: 10 }, { validation: false });bullish.inject(jobName, [data], [options])
can be used for testing or simulation. Returns a promise.
Has the following parameters:
data– the data passed to the handler injob.data.options– object of options:pre– an optional array of precalculated results to use instead of the defined jobpremiddleware.validation– disables input validation inside the job
bullish.inject(jobName, { name: 'Max', email: '[email protected]' }, {
pre: [ 5 ],
validation: false,
});