1.0.2 • Published 4 years ago

egg-starnet-rabbitmq v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

egg-starnet-rabbitmq

amqplib plugin for Egg.js

NOTE: this is plugin for starNet company, It's private plugin, With the company's Apollo system to use

NPM version build status Test coverage David deps Known Vulnerabilities npm download

Install

$ npm i egg-starnet-rabbitmq --save

Configuration

// {app_root}/config/plugin.js
exports.rabbitmq = {
  enable: true,
  package: 'egg-starnet-rabbitmq',
};

see config/config.default.js for more detail.

// connection and channel 
const { ch, conn, ack, watch, pub } = app.rabbitmq;

Simple instance

config

// {app_root}/config/config.default.js
exports.rabbitmq = {
  client: {
            host: '',
            port: '',
            vhost: '',
            user: '',
            password: '',
            exchange: '',
            queue: '',
            prefetch: '',
            heartbeat: '',
            routingKeys: []
  },
  // load into app, default is open
  app: true,
  // load into agent, default is close
  agent: false,
};

exmaple:

(async () => {
  // you can access to connection and channel using app.rabbitmq.
  const { ch, conn } = app.rabbitmq;
  // assertQueue
  await ch.assertQueue(queueName, { durable: true });
  // checkQueue
  await ch.checkQueue(queueName);
  // sendToQueue
  ch.sendToQueue(queueName, Buffer.from(msg));
  // If you want to get a channel which uses "confirmation mode"
  const confirmChannel = await conn.createConfirmChannel();
}).catch(console.error);

Multiple instance

exports.rabbitmq = {
  clients: {
    // clientId, access the client instance by app.rabbitmq.get('clientId')
    client1: {
      host: '',
      port: '',
      vhost: '',
      user: '',
      password: '',
      exchange: '',
      queue: '',
      prefetch: '',
      heartbeat: '',
      routingKeys: []
    },
    client2: {
      ...
    },
    // ...
  },
  // load into app, default is open
  app: true,
  // load into agent, default is close
  agent: false,
};

Usage:

const { ch: ch1, conn: conn1 } = app.rabbitmq.get('client1'); 
const { ch: ch2, conn: conn2 } = app.rabbitmq.get('client2'); 

Usage:

(async () => {
  // you can access to simple rabbitmq instance channel using app.rabbitmq.
  const ch = app.rabbitmq; // Channel
  // assertQueue
  await ch.assertQueue(queueName, { durable: true });
  // checkQueue
  await ch.checkQueue(queueName);
  // sendToQueue
  ch.sendToQueue(queueName, Buffer.from(msg));
}).catch(console.error);

Questions & Suggestions

Please open an issue here.

License

MIT

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago