Pimp my AMQP
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
-- -------------------- ---- ------- ----- ----- ------- ---- - ------------- ------ -- - ------- ----- ------------ --------- --------------- --------- --------------- ------- --------------------- ----- ------- --- ------ - --------- --- --------- ----- -------- - - --- - - ----- ----- - --- ------- ------ --- -- ---- ---- --- ------ -- --- ----- ------ ----- -------------- ------------------- -- -- - -- ---- ---------- -- --- ----- --------- -- ------ --------------------------- --- ------------------ -- -- - ---------------------- -------- ---- ------------ ---------------------------------- ---- --- - ---- ------- ------------- --- -- ----- --- ----- --------------
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
amqp.getChannel() ⇒ Promise
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.
amqp.createChannel() ⇒ Promise
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.
HomePage
https://github.com/Dunkelheit/amqpimping#readme
Repository
git+https://github.com/Dunkelheit/amqpimping.git
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cd381e8991b448e6643