node-amqp-wrapper
v1.0.0 amqp wrapper
node-amqp-wrapper
A simple wrapper to https://github.com/squaremo/amqp.node.
Allows you to have any number of publish queues, one consume queue and to perform consume and publish operations.
Handles assert/declare of queues.
Example usage
var AMQP = require('node-amqp-wrapper');
var queues = {
consume: {
name: process.env.AMQP_CONSUME,
options: {deadLetterExchange: process.env.AMQP_DEAD_LETTER_EXCHANGE}
},
publish: [
{
name: process.env.AMQP_RESPONSE,
routingKey: process.env.AMQP_RESPONSE_ROUTING_KEY,
options: {/* ... */} // options passed to ch.assertQueue() in wrapped lib.
},
{ // ...
}
]
};
AMQP.connect(process.env.AMQP_URL, process.env.AMQP_EXCHANGE,
queues, amqpConnectDone);
// Set the QOS/prefetch.
AMQP.prefetch(100);
// Consuming
var handleMessage = function(message, callback) {
//...
};
// You must call:
callback(err, requeue)
// in your handleMessage. If `err` !== `null` then the message will be `nack`ed.
// Requeueing will be requeue iff `requeue` is `true`.
// If `err` is `null` then the message is `ack`ed.
// If an exception occurs in handleMessage, then the message is `nack`ed and not requeued.
// Start consuming:
AMQP.consume(handleMessage);
// Publishing to one of the queues declared on connect.
AMQP.publishToQueue(name, payload, done);
// Publishing to arbitrary routing key.
AMQP.publish(routingKey, payload, done);
npm i [email protected]
Metadata
- BSD-2-Clause
- Whatever
- Timothy Leslie Allen
- released 3/25/2014