Method: AMQ::Client::Async::Consumer#cancel

Defined in:
lib/amq/client/async/consumer.rb

#cancel(nowait = false, &block) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/amq/client/async/consumer.rb', line 82

def cancel(nowait = false, &block)
  @connection.send_frame(Protocol::Basic::Cancel.encode(@channel.id, @consumer_tag, nowait))
  self.clear_callbacks(:delivery)
  self.clear_callbacks(:consume)
  self.clear_callbacks(:scancel)

  self.unregister_with_channel
  self.unregister_with_queue

  if !nowait
    self.redefine_callback(:cancel, &block)
    @channel.consumers_awaiting_cancel_ok.push(self)
  end

  self
end