AMQPimping
AMQPimping is a simple wrapper around the amqplib
module. You can use it,
for example, to listen and publish messages to RabbitMQ.
Features
- Event-emitting class
- Reuse AMQP connection and channel
- Reconnect to queue / channel on disconnections and errors
- Retry mechanism with on
bluebird-retry
bunyan
integration
Example usage
{ super host: 'localhost' username: 'someUsername' password: 'somePassword' logger: bunyan retry: maxTries: 10 interval: 1000 backoff: 2 ; } const queue = logger ; // Make sure you listen to any event before doing queue.start()! queue; queue; // Start the queuequeuestart;
API
- AMQP
- Events
new AMQP(options)
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. |
amqp.start()
Start the fun.
Kind: instance method of AMQP
amqp.connect()
Connect to AMQP.
Kind: instance method of AMQP
Promise
amqp.getChannel() ⇒ 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.
Promise
amqp.createChannel() ⇒ Creates a new channel and handles all possible disconnections.
Kind: instance method of AMQP
Returns: Promise
- A promise to a AMQP channel.
amqp.listen(queue)
Listen to a queue.
Kind: instance method of AMQP
Param | Type | Description |
---|---|---|
queue | string |
Name of the queue to listen to. |
amqp.publish(queue, message)
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. |
amqp.stop()
Stop the AMQP listener. Connection with AMQP, if present, will be closed.
Kind: instance method of AMQP
"connect"
Event fired when the connection to AMQP is successful.
Kind: event emitted by AMQP
"message"
Event fired when a message is received in the queue.
Kind: event emitted by AMQP
"listen"
Event fired when the instance starts listening to messages in the queue.
Kind: event emitted by AMQP
"error"
Event fired when an error occurs.
Kind: event emitted by AMQP
"close"
Event fired when the connection to AMQP is closed.
Kind: event emitted by AMQP
Testing
Run the integration tests with npm test
. You'll need docker compose to be installed.
License
See LICENSE.