payapi-rabbus
Version:
A micro-servicebus for RabbitMQ. Forked from https://github.com/derickbailey/rabbus.git solely to make it use payapi-whistlepunk as a dependency.
40 lines (29 loc) • 796 B
JavaScript
var util = require("util");
var _ = require("underscore");
var uuid = require("uuid");
var defaults = require("./defaults");
var Consumer = require("../consumer");
// Subscriber
// --------
function Subscriber(rabbit, options){
if (_.isObject(options.queue)){
options.queue.name = getUniqueName(options.queue.name);
} else {
options.queue = getUniqueName(options.queue);
}
Consumer.call(this, rabbit, options, defaults);
}
util.inherits(Subscriber, Consumer);
// Instance Methods
// ----------------
Subscriber.prototype.subscribe = Consumer.prototype.consume;
// Helpers
// -------
function getUniqueName(queueName){
var id = uuid.v4();
var name = util.format('%s.sub.queue.%s', queueName, id);
return name;
}
// Exports
// -------
module.exports = Subscriber;