| @ -0,0 +1,50 @@ | |||
| var kestrel = require('../'); | |||
| //setup our client | |||
| var client = new kestrel.kestrelClient( { | |||
| connectionType: kestrel.connectionType.RANDOM, | |||
| servers: ['127.0.0.1:22133'] | |||
| }); | |||
| //make our connection(s) | |||
| client.connect(); | |||
| //get the server version, same as running 'VERSION' | |||
| client.version().once('version', function(version){ | |||
| console.log('Version: ' + version); | |||
| }); | |||
| //get the server stats, same as running 'STATS' | |||
| client.stats().once('stats', function(stats){ | |||
| console.dir(stats); | |||
| }); | |||
| //input some data into the 'test' queue | |||
| client.set('test', 'some data'); | |||
| console.log('Message Sent'); | |||
| //do this for every message that we 'GET' | |||
| client.on('message', function(message){ | |||
| console.log('New Message:'); | |||
| console.dir(message); | |||
| //make sure to get more if the queue has them | |||
| client.get('test', 3000); | |||
| }); | |||
| //get from the queue, wait up to 3 seconds for a response | |||
| client.get('test', 3000); | |||
| setTimeout(function(){ | |||
| //this will SHUTDOWN the server! | |||
| //client.shutdown(); | |||
| //close all client connections to server(s) | |||
| client.close(); | |||
| }, 3000); | |||
| @ -0,0 +1,17 @@ | |||
| var kestrel = require('../'); | |||
| var consumer = new kestrel.kestrelConsumer( 'test', { | |||
| connectionType: kestrel.connectionType.ROUND_ROBIN, | |||
| servers: ['127.0.0.1:22133'] | |||
| }); | |||
| function consumed(message){ | |||
| console.log('Consumed Message:'); | |||
| console.dir(message); | |||
| } | |||
| consumer.consume( consumed ); | |||
| setTimeout( function(){ | |||
| consumer.stopConsuming(); | |||
| }, 6000); | |||
| @ -0,0 +1,27 @@ | |||
| var kestrel = require('../'); | |||
| //create our producer | |||
| var producer = new kestrel.kestrelProducer( 'test', { | |||
| connectionType: kestrel.connectionType.FAILOVER, | |||
| servers: ['127.0.0.1:22133'] | |||
| }); | |||
| //capture all 'stored' events | |||
| producer.on('stored', function(stored){ | |||
| console.log('Stored: ' + stored); | |||
| }); | |||
| //lets input some data | |||
| var interval = setInterval( function(){ | |||
| producer.send( (new Date().getTime()) + ' - New Message' ); | |||
| }, 100); | |||
| //close connection | |||
| setTimeout( function(){ | |||
| clearInterval(interval); | |||
| producer.close(); | |||
| }, 6000); | |||
| @ -1 +1,55 @@ | |||
| var kestrel = require('./kestrelClient.js'); | |||
| var client = require('./kestrelClient.js'); | |||
| var ee2 = require('eventemitter2').EventEmitter2; | |||
| var util = require('util'); | |||
| var consumer = function( queue, options ){ | |||
| this._queue = queue; | |||
| this._client = new client(options); | |||
| this._client.connect(); | |||
| this._callback = null; | |||
| this._consume = false; | |||
| this._timeout = 3000; | |||
| var self = this; | |||
| this._client.on('message', function(message){ | |||
| if( typeof self._callback == 'function' ){ | |||
| self._callback(message); | |||
| } | |||
| if( self._consume ){ | |||
| self.get(self._timeout); | |||
| } | |||
| self.emit('message', message); | |||
| }); | |||
| this._client.on('empty', function(){ | |||
| self.get(self._timeout); | |||
| }); | |||
| ee2.call(this); | |||
| } | |||
| util.inherits(consumer,ee2); | |||
| consumer.prototype.get = function( timeout ){ | |||
| this._client.get(this._queue, timeout); | |||
| } | |||
| consumer.prototype.consume = function( callback ){ | |||
| if( typeof(callback) == 'function' ){ | |||
| this._callback = callback; | |||
| } | |||
| this._consume = true; | |||
| this.get(this._timeout); | |||
| } | |||
| consumer.prototype.stopConsuming = function(){ | |||
| this._consume = false; | |||
| } | |||
| module.exports = consumer; | |||
| @ -1 +1,35 @@ | |||
| var kestrel = require('./kestrelClient.js'); | |||
| var ee2 = require('eventemitter2').EventEmitter2; | |||
| var client = require('./kestrelClient.js'); | |||
| var util = require('util'); | |||
| var producer = function( queue, options ){ | |||
| this._queue = queue; | |||
| this._client = new client(options); | |||
| this._client.connect(); | |||
| var self = this; | |||
| this._client.on('stored', function(stored){ | |||
| self.emit('stored', stored); | |||
| }); | |||
| ee2.call(this); | |||
| } | |||
| util.inherits(producer,ee2); | |||
| producer.prototype.send = function(message, lifetime){ | |||
| if( lifetime == null || lifetime == undefined ){ | |||
| lifetime = 0; | |||
| } | |||
| lifetime = parseInt(lifetime); | |||
| this._client.set(this._queue, message, lifetime); | |||
| } | |||
| producer.prototype.close = function(){ | |||
| this._client.close(); | |||
| } | |||
| module.exports = producer; | |||