1.1.5 • Published 5 years ago

redis-queue-list v1.1.5

Weekly downloads
18
License
MIT
Repository
github
Last release
5 years ago

a message queue by redis list. Supports Redis >= 3.0.0 and (Node.js >= 8).

Quick Start

Install

$ npm install redis-queue-list

Basic Usage

const redisQueue = require('redis-queue-list').RedisQueue;
const RedisQ = new redisQueue(config, option);
RedisQ.push(JSON.stringify({ a: 1, b: i }), 'send', 5);
//  enqueue
const message = RedisQ.pull('send');
//  dequeue
RedisQ.ack(message, 'send');
//   confirm

Mulit Clients

const redisQueue = require('redis-queue-list').MulitRedis;
const RedisQ = new redisQueue(config, option);
RedisQ.Redis.get('foo').push(JSON.stringify({ a: 1, b: i }), 'send', 5);
//  enqueue
const message = RedisQ.Redis.get('foo').pull('send');
//  dequeue
RedisQ.Redis.get('foo').ack(message, 'send');
//   confirm

Andvance

const EventEmitter = require('event').EventEmitter;
const redisEvent = new EventEmitter();
const redisQueue = require('redis-queue-list').RedisQueue;
const RedisQ = new redisQueue(config, option);
RedisQ.push(JSON.stringify({ a: 1, b: i }), 'send', 5);
//  enqueue

redisEvent.on('pull', async () => {
  const message = RedisQ.Redis.get('foo').pull('send');
  //  dequeue
  RedisQ.Redis.get('foo').ack(message, 'send');
  //   confirm
  await sleep(5);
  redisEvent.emit('pull');
});

redisEvent.emit('pull');

option

{
  Priority: 6, // Priority
  queueNames: ['send', 'notify'], //  all queueName
  pendingTime: 10000, // retry time
},

Configuration

Single Client

config = {
  port: 6379, //  port
  host: '127.0.0.1', //  host
  password: 'auth',
  db: 0,
};

Multi Clients

config = {
  clients: {
    foo: {
      port: 6379, // Redis port
      host: '127.0.0.1', // Redis host
      password: 'auth',
      db: 0,
    },
    bar: {
      port: 6379,
      host: '127.0.0.1',
      password: 'auth',
      db: 1,
    },
  },
};

Sentinel

config = {
  sentinels: [
    {
      port: 26379, // Sentinel port
      host: '127.0.0.1', // Sentinel host
    },
  ],
  name: 'mymaster', // Master name
  password: 'auth',
  db: 0,
};

Cluster

config = {
  cluster: true,
  nodes: [
    {
      host: '127.0.0.1',
      port: '6379',
      family: 'user',
      password: 'password',
      db: 'db',
    },
    {
      host: '127.0.0.1',
      port: '6380',
      family: 'user',
      password: 'password',
      db: 'db',
    },
  ],
};

Questions & Suggestions

Please open an issue here.

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

0.8.0

5 years ago

0.7.0

5 years ago

0.6.0

5 years ago

0.5.0

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago