Package Exports
- mqemitter
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mqemitter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
mqemitter 
An Opinionated Message Queue with an emitter-style API
Installation
$ npm install mqemitter --save
Basic Example
var mq = require('mqemitter')
, emitter = mq({ concurrency: 5, maxlength: 42 })
, message
emitter.on('hello world', function(message, cb) {
// call callback when you are done
// do not pass any errors, the emitter cannot handle it.
cb()
})
// topic is mandatory
message = { topic: 'hello world', payload: 'or any other fields' }
emitter.emit(message, function(err) {
// we can have an err if we enqueued too many messages
})API
MQEmitter(opts)
MQEmitter is the class and function exposed by this module.
It can be created by MQEmitter() or using new MQEmitter().
An MQEmitter accepts the following options:
concurrency: the maximum number of concurrent messages that can be on concurrent delivery.maxlength: the maximum number of messages that can be enqueued if there is it has reached maximum concurrency.
emitter.emit(message, callback(err))
Emit the given message, which must have a topic property, which can contain wildcards
as defined by QLobber.
The callback, accept only one parameter, the possible Error object.
This situation might happen if the message cannot be enqueued, i.e.
maxlength has been reached.
emitter.on(topic, callback(message, done))
Add the given callback to the passed topic. Topic can contain wildcards,
as defined by QLobber.
The callback, accept two parameters, the passed message and a done
callback.
The callback must never error and done must not be called with an
err object.
emitter.removeListener(topic, callback)
The inverse of on.
LICENSE
Copyright (c) 2014, Matteo Collina hello@matteocollina.com
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.