Class: EventQ::RabbitMq::SubscriptionManager
- Inherits:
-
Object
- Object
- EventQ::RabbitMq::SubscriptionManager
- Defined in:
- lib/eventq_rabbitmq/rabbitmq_subscription_manager.rb
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ SubscriptionManager
constructor
A new instance of SubscriptionManager.
- #subscribe(event_type, queue) ⇒ Object
- #unsubscribe(queue) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ SubscriptionManager
Returns a new instance of SubscriptionManager.
5 6 7 8 9 10 11 12 |
# File 'lib/eventq_rabbitmq/rabbitmq_subscription_manager.rb', line 5 def initialize( = {}) if [:client] == nil raise ':client (QueueClient) must be specified.'.freeze end @client = [:client] @queue_manager = QueueManager.new @event_raised_exchange = EventQ::EventRaisedExchange.new end |
Instance Method Details
#subscribe(event_type, queue) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/eventq_rabbitmq/rabbitmq_subscription_manager.rb', line 14 def subscribe(event_type, queue) _event_type = EventQ.create_event_type(event_type) connection = @client.get_connection channel = connection.create_channel queue = @queue_manager.get_queue(channel, queue) exchange = @queue_manager.get_exchange(channel, @event_raised_exchange) queue.bind(exchange, :routing_key => _event_type) channel.close connection.close EventQ.logger.debug do "[#{self.class} #subscribe] - Subscribing queue: #{queue.name} to Exchange: #{_event_type}" end return true end |
#unsubscribe(queue) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/eventq_rabbitmq/rabbitmq_subscription_manager.rb', line 36 def unsubscribe(queue) connection = @client.get_connection channel = connection.create_channel queue = @queue_manager.get_queue(channel, queue) exchange = @queue_manager.get_exchange(channel, @event_raised_exchange) queue.unbind(exchange) channel.close connection.close return true end |