bull-manager v1.1.4
bull-manager 
Easily manage your bull queues
Getting started
$ yarn add bull-managerUsage
On the worker side:
const {configureQueues, createJobQueue} = require('bull-manager')
configureQueues({
isSubscriber: true,
prefix: 'my-prefix',
createRedis: type => {
/* … */
},
onError: (job, error) => {
console.error('An unexpected error happened')
}
})
await createJobQueue('my-cool-job', job => {/* handler */}, {
concurrency: 10,
onError: (job, error) => {
console.log('my cool job failed')
}
}, {
/* job options */
})On the client side:
const {configureQueues, joinJobQueue, enqueue} = require('bull-manager')
configureQueues({
prefix: 'my-prefix',
createRedis: type => {
/* … */
},
onError: (job, error) => {
console.error('An unexpected error happened')
}
})
await joinJobQueue('my-cool-job', {
/* job options */
})
await enqueue('my-cool-job', 'job-name', {
something: 'important'
}, {
/* job options */
})API
configureQueues(options)
Configure bull-manager by specifying the following options:
isManager: set totruefor workers. Defaults tofalse.createRedis: function that creates redis connections if you need custom options. Passing a function will enable connections reuse forsubscriberandclientconnections. Defaults toundefined.onError: error handler that will be called for failed jobs when the corresponding queue doesn’t specify a custom error handler. Defaults toundefined.
createJobQueue(name, handler, options, jobOptions)
Create a job queue and add the corresponding handler.
It takes the following options:
onError: specific error handler that will be called when a job fails. Throwing withing theonErrorhandler will invoke the global error handler (when defined) with the thrown error. Defaults toundefined.concurrency: amount of concurrent jobs per process. Defaults to1.
For jobOptions, refer to the bull documentation.
There is one additional job option:
jobIdKey:enqueuewill set thejobIdto_.get(data, jobIdKey)
The default values are the same as in Queue#add except for removeOnComplete that will be true.
joinJobQueue(name, jobOptions)
Join a job queue. Behaves like createJobQueue except that it does not register a handler.
enqueue(name, jobTitle, data, jobOptions)
Add a job to the name jobQueue.
jobTitle is just a simple name to identify a job, it is not required. It will set name property to data if not set.
disconnectQueues()
Run Queue#disconnect on all queues.
Cool features
jobIdKey
Pass jobIdKey to job options so that enqueue will set the jobId to _.get(data, jobIdKey). Only works for createJobQueue and joinJobQueue job options, as it doesn’t make sense for enqueue. You always have the possibility to use jobId in enqueue, it will override anything else.
Fallthrough error handlers
Throwing in a job specific error handler will call the global error handler with that error.
Random things
- You don’t need to pass job options to
createJobQueueif you are never going to useenqueuein your workers. removeOnCompleteis set to true by default.
License
MIT
Miscellaneous
╚⊙ ⊙╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝