Simple in-memory queue for Node.js. It can be accessed by remote clients.
Via npm on Node:
npm install simplequeue
Reference it from your program:
var simplequeue = require('simplequeue');
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.
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);
git clone git://github.com/ajlopez/SimpleQueue.git
cd SimpleQueue
npm install
npm test
- Local Producer and Consumers Sample demostrating how to launch one producer and two consumers sharing a queue.
- Distributed Producers and Consumers Using a central queue server from distributed producers and consumers.
- 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)
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.