simplequeue

Simple In-memory Distributed Queue for Node.js

npm install simplequeue
13 downloads in the last week
43 downloads in the last month

SimpleQueue

Simple in-memory queue for Node.js. It can be accessed by remote clients.

Installation

Via npm on Node:

npm install simplequeue

Reference it from your program:

var simplequeue = require('simplequeue');

Local Usage

Create queue, put and get message:

var sq = require('simplequeue');

// ....

var queue = sq.createQueue();
queue.putMessage('my data');

// ....

var newmessage = queue.getMessageSync(); // null if no message

// now, newmessage contains 'my daya'

// put another message

queue.putMessage('my new data');

// ....

// get the message with a callback

queue.getMessage(function (err, msg) {
    // now msg contains 'my new data'
});

There is a local Queue Server

var sq = require('simplequeue');
var server = new sq.createQueueServer();

Then, you can create a Queue by name

var queue = server.createQueue('myqueue');

If the queue already exists, the original queue is returned.

To get an existent queue

var queue = server.getQueue('myqueue');

If the queue doesn't exist, null is returned.

Remote Usage

Server side:

var localserver = sq.createQueueServer();

var server = sq.createRemoteServer(localserver);
server.listen(3000);

If you don't need a reference to the local server, it can be omitted:

var server = sq.createRemoteServer();
server.listen(3000);

Client side:

var client = sq.createRemoteClient();

client.on('remote', function(server) {
    server.getQueue('myqueue', function(err, queue) {
        if (err) {
            console.log(err);
            return;
        }

        queue.putMessage(new simplequeue.Message('my data'));

        // or you can get a message with a callback

        queue.getMessage(function(err, msg) {
            // ...
        });
    });

});

client.connect(port, host);

Development

git clone git://github.com/ajlopez/SimpleQueue.git
cd SimpleQueue
npm install
npm test

Samples

Versions

  • 0.0.1: Published.
  • 0.0.2: Published. More factory methods exposed, instead of direct 'classes'. It uses a new version of SimpleRemote (0.0.3)
  • 0.0.3: Published. Engine range update; it uses SimpleRemote 0.0.4
  • 0.0.4: Published. Using SimpleRemote 0.0.5

Contribution

Feel free to file issues and submit pull requests � contributions are welcome.

If you submit a pull request, please be sure to add or update corresponding test cases, and ensure that npm test continues to pass.

npm loves you