AMQPimping is a simple wrapper around the amqplib
module. You can use it,
for example, to listen and publish messages to RabbitMQ.
- Event-emitting class
- Reuse AMQP connection and channel
- Reconnect to queue / channel on disconnections and errors
- Retry mechanism with on
bluebird-retry
bunyan
integration
class Queue extends AMQP {
constructor({ logger }) {
super({
host: 'localhost',
username: 'someUsername',
password: 'somePassword',
logger: bunyan.createLogger({ name: 'queue' }),
retry: {
maxTries: 10,
interval: 1000,
backoff: 2
}
});
}
}
const queue = new Queue({ logger });
// Make sure you listen to any event before doing queue.start()!
queue.on('connect', () => {
// Once connected, we can start listening to queues
queue.listen('some_queue');
});
queue.on('listen', () => {
console.log('Goodnight Seattle, I\'m listening');
queue.publish('a_different_queue', 'How can I help you?');
queue.stop();
});
// Start the queue
queue.start();
- AMQP
- Events
Constructor of the AMQP listener.
Param | Type | Description |
---|---|---|
options | object |
Options object. |
options.host | string |
The AMQP host to connect to. |
options.username | string |
The AMQP username. |
options.password | string |
The AMQP password. |
options.logger | function |
A bunyan logger instance. |
options.retry | object |
Retry settings. |
options.retry.maxTries | number |
Amount of retries. |
options.retry.interval | number |
Interval between retries. |
options.retry.backoff | number |
Backoff factor. |
options.durable | boolean |
Whether to use durable queues or not. |
Start the fun.
Kind: instance method of AMQP
Connect to AMQP.
Kind: instance method of AMQP
Gets the channel for this instance, or create a new one if it doesn't exist yet.
Kind: instance method of AMQP
Returns: Promise
- A promise to a AMQP channel.
Creates a new channel and handles all possible disconnections.
Kind: instance method of AMQP
Returns: Promise
- A promise to a AMQP channel.
Listen to a queue.
Kind: instance method of AMQP
Param | Type | Description |
---|---|---|
queue | string |
Name of the queue to listen to. |
Publish a message.
Kind: instance method of AMQP
Param | Type | Description |
---|---|---|
queue | string |
Queue to publish the message to. |
message | string |
The message to publish. |
Stop the AMQP listener. Connection with AMQP, if present, will be closed.
Kind: instance method of AMQP
Event fired when the connection to AMQP is successful.
Kind: event emitted by AMQP
Event fired when a message is received in the queue.
Kind: event emitted by AMQP
Event fired when the instance starts listening to messages in the queue.
Kind: event emitted by AMQP
Event fired when an error occurs.
Kind: event emitted by AMQP
Event fired when the connection to AMQP is closed.
Kind: event emitted by AMQP
Run the integration tests with npm test
. You'll need docker compose to be installed.
See LICENSE.