bull-queue-manager
Minimalist queue manager based on bull: the awesome Node.js job and message queue.
This module provides a high level API that allow you to re-use shared configurations and instances, as well as reduce the number of redis connections to the minimum by default.
Also introduce a convenient "response" promise to easily process jobs result:
let result = await q1.add({
name: 'job1'
}).response;
Usage
Create and initialize Queue Manager:
const QueueManager = require('bull-queue-manager').QueueManager;
const qm = new QueueManager(
6379,
'localhost',
0,
{}
);
qm.init();
const qm = new QueueManager('redis://localhost:6379/0', {
});
Create some queues on demand:
const q1 = qm.queue('q1');
const q2 = qm.queue('q2');
const q3 = qm.queue('q3');
const q4 = qm.queue('q4');
const q5 = qm.queue('q5', 6379, 'redis.instance.com', 1, {});
const q6 = qm.queue('redis://localhost:6379/3', {});
Register job processors:
q1.process(async (job) => {
return {
success: true
};
});
Add jobs to queues:
let promise = q1.add({
name: 'job1'
});
let job = await promise;
Add jobs to queues, optionally process result from processing:
let promise = q1.add({
name: 'job1'
});
let result = await promise.response;
Shutdown the QueueManager instance (close all queues):
qm.shutdown();