Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jkyberneees/bull-queue-manager
Minimalist queue manager based on bull.
https://github.com/jkyberneees/bull-queue-manager
Last synced: 2 months ago
JSON representation
Minimalist queue manager based on bull.
- Host: GitHub
- URL: https://github.com/jkyberneees/bull-queue-manager
- Owner: jkyberneees
- License: mit
- Created: 2017-04-10T08:41:55.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-04-18T11:48:12.000Z (over 7 years ago)
- Last Synced: 2024-05-16T11:25:47.447Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 14.6 KB
- Stars: 7
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- cuban-opensource - bull-queue-manager
README
# bull-queue-manager
Minimalist queue manager based on [bull](https://www.npmjs.com/package/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](https://github.com/OptimalBits/bull#reusing-redis-connections) to the minimum by default.
Also introduce a convenient "response" promise to easily process jobs result:
```js
let result = await q1.add({
name: 'job1'
}).response;
```## Usage ##
Create and initialize Queue Manager:
```js
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();
```
```js
// also redis connection URL can be used
const qm = new QueueManager('redis://localhost:6379/0', {
// options
});
```
### Create some queues on demand: ###
```js
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: ###
```js
q1.process(async (job) => {
// ... do something with job.data
// ...// finally respond something
return {
success: true
};
});
```### Add jobs to queues: ###
```js
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: ###
```js
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): ###
```js
qm.shutdown();
```