2.1.0 • Published 6 years ago

nsq-relayer v2.1.0

Weekly downloads
200
License
ISC
Repository
github
Last release
6 years ago

nsq-relayer

Build Status

You emit events from anywhere in your code and this module posts them all to its configured nsq instance.

const createRelayer = require('nsq-relayer');

const relayer = createRelayer({
	nsq: 'http://localhost:4151',
	event: 'event-to-listen-for'
	topic: 'foozle',
});

// later on
process.emit('event-to-listen-for', { name: 'my-little-message', type: 'cutie-mark' });
// the relayer will then post this to nsq for us with zero effort

You can also pass an array of names to relay to more than one nsq topic. In this case, the nsq topic is the same as the event.

const relayer = createRelayer({
	nsq: 'http://localhost:4151',
	relays: [ 'metric', 'email', 'cute-kitten' ],
});

// relay to `metric` nsq topic
process.emit('metric', { name: 'pony-count', value: 200 });
// relay to `email` nsq topic
process.emit('email', { to: 'friendship@example.com', subject: 'this example is long' });
// relay to `cute-kitten` nsq topic
process.emit('cute-kitten', { name: 'Mittens', color: 'orange tabby' });

For both configuration styles, the nsq field is a uri-formatted string. The host & port will be parsed out & passed to squeaky.

Notes

No attempt is made to retry failed event posts.

Each event is posted as it arrives, without batching. You might want to batch if you're posting many events per second. Or use the TCP mode for squeaky, which opens a connection, keeps it open, and shoves data through.

Licence

ISC.

2.1.0

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

7 years ago

1.0.0

7 years ago