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.
148 149 150 151 152 |
# File 'lib/hot_bunnies/queue.rb', line 148 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.
146 147 148 |
# File 'lib/hot_bunnies/queue.rb', line 146 def consumer @consumer end |
Instance Method Details
#consumer_tag ⇒ Object
154 155 156 |
# File 'lib/hot_bunnies/queue.rb', line 154 def consumer_tag @consumer.consumer_tag end |
#start ⇒ Object
158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/hot_bunnies/queue.rb', line 158 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 |