1.1.0 • Published 10 years ago
nsquishy v1.1.0
nsquishy
A wrapper of nsqjs to simplify microservice workers using NSQ
Example
var Nsquishy = require('nsquishy');
// specify nsqlookupd host yourself
var options = {
nsqlookupd: '127.0.0.1:4161',
topic: 'test',
channel: 'test'
}
// if nsqlookupd is stored in etcd - like in a distributed system like CoreOS
var optionsEtcd = {
etcd: 'http://127.0.0.1:4001',
etcdNsqlookupKey: '/nsqlookupd-http',
topic: 'test',
channel: 'test'
}
// just using an nsqd instance
var optionsNsqd = {
nsqdHost: '127.0.0.1',
nsqdPort: '4150'
topic: 'test',
channel: 'test'
}
// if you don't specify a channel, only writer is available
var optionsNoTopic = {
nsqdHost: '127.0.0.1',
nsqdPort: '4150'
}
var nsquishy = new Nsquishy(options)
nsquishy.squish(function (err) {
if (err) {
throw err;
}
nsquishy.nsqReader.init(function (err, callback) {
if (err) {
throw err;
}
nsquishy.nsqReader.on('message', function(msg) {
console.log('received message: %j', msg);
});
});
nsquishy.nsqWriter.init(function (err, callback) {
if (err) {
throw err;
}
setInterval(function () {
nsquishy.nsqWriter.publish('test', 'hello world');
}, 30000);
});
});Options
The following options are available when instantiating Nsquishy
nsqlookupd
- 'nsqlookupd' - string: nsqlookupd http api hostname in format
127.0.0.1:4161. Cannot be specified withetcdandetcdNsqlookupKey - 'nsqlookupdHttpProtocol' - string:
http://orhttps://
nsqlookupd http api info stored in etcd
- 'etcd' - string: etcd http api hostname where nsqlookupd http api hostname is stored in format
http://127.0.0.1:4001. Cannot be specified withnsqlookupd - 'etcdNsqlookupKey' - string: specify etcd key where value of nsqlookupd http api hostname is stored, eg.
/nsqlookupd. Cannot be specified withnsqlookupd
nsqd only (if specified, does not attempt to use nsqlookupd)
- 'nsqdHost' - string: nsqd tcp hostname in format
127.0.0.1 - 'nsqdPort' - number: nsqd tcp port in format
4150
other
- 'topic' - string: used to setup reader. Reader will not start without this
- 'channel' - string: used to setup reader. Reader will not start without this
- 'readerOptions' - object: as defined here
- 'writerOptions' - object: as defined here
Writer
On calling nsquishy.squish(), nsquishy.nsqWriter is assigned an initialized instance of a nsqjs writer
Methods:
init- initializes connection to nsq. Callback fires onreadyevent. Automatically handleserrandreadyevents
See nsqjs for full writer documentation
Reader
On calling nsquishy.squish(), nsquishy.nsqReader is assigned an initialized instance of a nsqjs reader
Methods:
init- initializes connection to nsq. Callback fires onnsqd_connectedevent. Automatically handleserrandnsqd_connectedevents
See nsqjs for full reader documentation