1.0.2 • Published 4 years ago
egg-starnet-rabbitmq v1.0.2
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
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.