Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 

readme.md

Jackrabbit

Build Status NPM version

RabbitMQ in Node.js without hating life.

Simple Example

producer.js:

var jackrabbit = require('jackrabbit');
var rabbit = jackrabbit(process.env.RABBIT_URL);

rabbit
  .default()
  .publish('Hello World!', { key: 'hello' })
  .on('drain', rabbit.close);

consumer.js:

var jackrabbit = require('jackrabbit');
var rabbit = jackrabbit(process.env.RABBIT_URL);

rabbit
  .default()
  .queue({ name: 'hello' })
  .consume(onMessage, { noAck: true });

function onMessage(data) {
  console.log('received:', data);
}

Set arguments in queue

 
 rabbit
  .default()
  .queue({ name: 'hello', durable: true, arguments: {'x-expires':420000}  })
   

other arguments:

  • x-max-length
  • x-max-length-bytes
  • x-overflow
  • x-dead-letter-exchange
  • x-dead-letter-routing-key
  • x-max-priority
  • x-queue-mode
  • x-queue-master-locator
  • x-message-ttl

Ack/Nack Consumer Example

var jackrabbit = require('jackrabbit');
var 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
    // NOTE: this will requeue automatically
    nack();

    // or, if you want to nack without requeue:
    nack({
      requeue: false
    });
  })

Jackrabbit is designed for simplicity and an easy API. If you're an AMQP expert and want more power and flexibility, check out Rabbot.

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 jackrabbit

Tests

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 run jackrabbit npm test

If using Docker-Machine on OSX:

$ docker-machine start
$ eval "$(docker-machine env default)"
$ docker-compose run jackrabbit npm test

Release

Releases should be tagged according to Semantic Versioning

Process:

  • Add release notes to releases.md
  • Commit add push the release notes git commit releases.md && git push origin master
  • Release it ./node_modules/release-it/bin/release-it.js

About

Simple AMQP / RabbitMQ job queues for node based on amqplib

Resources

Packages

No packages published
You can’t perform that action at this time.