Package Exports
- @pager/jackrabbit
- @pager/jackrabbit/lib/queue
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@pager/jackrabbit) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Jackrabbit
This is an actively maintained fork of hunterloftis/jackrabbit, a library for RabbitMQ in Node.js without hating life.
Jackrabbit is a very opinionated abstraction built on top of amqplib focused
on usability and implementing several messaging patterns on RabbitMQ.
Simple Example
// producer.js
'use strict';
const jackrabbit = require('@pager/jackrabbit');
const rabbit = jackrabbit(process.env.RABBIT_URL);
rabbit
.default()
.publish('Hello World!', { key: 'hello' })
.on('drain', rabbit.close);// consumer.js
'use strict';
const jackrabbit = require('@pager/jackrabbit');
const rabbit = jackrabbit(process.env.RABBIT_URL);
rabbit
.default()
.queue({ name: 'hello' })
.consume(onMessage, { noAck: true });
function onMessage(data) {
console.log('received:', data);
}Ack/Nack Consumer Example
'use strict';
const jackrabbit = require('@pager/jackrabbit');
const rabbit = jackrabbit(process.env.RABBIT_URL);
rabbit
.default()
.queue({ name: 'important_job' })
.consume(function(data, ack, nack, msg) {
// process data...
// and ACK on success
ack();
// or alternatively NACK on failure
nack();
})More Examples
For now, the best usage help is can be found in examples, which map 1-to-1 with the official RabbitMQ tutorials.
Installation
npm install --save jackrabbitTests
The tests are set up with Docker + Docker-Compose, so you don't need to install rabbitmq (or even node) to run them:
$ docker-compose up