Class: HotBunnies::Queue::BlockingSubscriber
- Inherits:
-
Object
- Object
- HotBunnies::Queue::BlockingSubscriber
- Includes:
- Subscriber
- Defined in:
- lib/hot_bunnies/queue.rb
Instance Attribute Summary collapse
-
#consumer ⇒ Object
readonly
Returns the value of attribute consumer.
Instance Method Summary collapse
- #consumer_tag ⇒ Object
-
#initialize(channel, subscription) ⇒ BlockingSubscriber
constructor
A new instance of BlockingSubscriber.
- #start ⇒ Object
Methods included from Subscriber
Constructor Details
#initialize(channel, subscription) ⇒ BlockingSubscriber
Returns a new instance of BlockingSubscriber.
183 184 185 186 187 |
# File 'lib/hot_bunnies/queue.rb', line 183 def initialize(channel, subscription) @channel = channel @subscription = subscription @consumer = QueueingConsumer.new(@channel) end |
Instance Attribute Details
#consumer ⇒ Object (readonly)
Returns the value of attribute consumer.
181 182 183 |
# File 'lib/hot_bunnies/queue.rb', line 181 def consumer @consumer end |
Instance Method Details
#consumer_tag ⇒ Object
189 190 191 |
# File 'lib/hot_bunnies/queue.rb', line 189 def consumer_tag @consumer.consumer_tag end |
#start ⇒ Object
193 194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'lib/hot_bunnies/queue.rb', line 193 def start super while delivery = @consumer.next_delivery result = (@consumer.consumer_tag, delivery.envelope, delivery.properties, delivery.body) if result == :cancel @subscription.cancel while delivery = @consumer.next_delivery(0) (@consumer.consumer_tag, delivery.envelope, delivery.properties, delivery.body) end break end end end |