bull-queue-manager

1.1.1 • Public • Published

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,           //redis port
    'localhost',    //redis host
    0,              //redis db
    {}              //redis options (described in https://github.com/luin/ioredis/blob/master/API.md)
);
qm.init();
// also redis connection URL can be used
const qm = new QueueManager('redis://localhost:6379/0', {
    // options
});

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');
 
// optionally override default config
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) => {
    // ... do something with job.data
    // ...
 
    // finally respond something
    return {
        success: true
    };
});

Add jobs to queues:

let promise = q1.add({
    name: 'job1'
});
let job = await promise; // https://github.com/OptimalBits/bull#job

Add jobs to queues, optionally process result from processing:

let promise = q1.add({
    name: 'job1'
});
// you can get the response promise here
let result = await promise.response;
// result == { success: true }  

Shutdown the QueueManager instance (close all queues):

qm.shutdown();

Dependencies (2)

Dev Dependencies (2)

Package Sidebar

Install

npm i bull-queue-manager

Weekly Downloads

9

Version

1.1.1

License

MIT

Last publish

Collaborators

  • jkyberneees