Skip to content

ajlopez/SimpleQueue

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

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

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.

About

Simple in-memory Queue for Node.js. It can be used from remote clients.

Resources

License

Stars

Watchers

Forks

Packages

No packages published