Methods

Files

Bunny::Subscription09

DESCRIPTION:

Asks the server to start a “consumer”, which is a transient request for messages from a specific queue. Consumers last as long as the channel they were created on, or until the client cancels them with an unsubscribe. Every time a message reaches the queue it is passed to the blk for processing. If error occurs, Bunny::ProtocolError is raised.

OPTIONS:

OPERATION:

Passes a hash of message information to the block, if one has been supplied. The hash contains :header, :payload and :delivery_details. The structure of the data is as follows -

:header has instance variables -

@klass
@size
@weight
@properties is a hash containing -
  :content_type
  :delivery_mode
  :priority

:payload contains the message contents

:delivery details is a hash containing -

:consumer_tag
:delivery_tag
:redelivered
:exchange 
:routing_key

If the :timeout option is specified then Qrack::ClientTimeout is raised if method times out waiting to receive the next message from the queue.

EXAMPLES

my_queue.subscribe(:timeout => 5) {|msg| puts msg}

my_queue.subscribe(:message_max => 10, :ack => true) {|msg| puts msg}

Public Instance Methods

setup_consumer() click to toggle source
# File lib/bunny/subscription09.rb, line 64
def setup_consumer
        client.send_frame(
                Qrack::Protocol09::Basic::Consume.new({ :reserved_1 => 0,
                                                                                                                                                                             :queue => queue.name,
                                                                                                                                                                           :consumer_tag => consumer_tag,
                                                                                                                                                                           :no_ack => !ack,
                                                                                                                                                                                :exclusive => exclusive,
                                                                                                                                                                           :nowait => false}.merge(@opts))
                                                                                )

        method = client.next_method

        client.check_response(method,        Qrack::Protocol09::Basic::ConsumeOk,
                "Error subscribing to queue #{queue.name}")

        @consumer_tag = method.consumer_tag

end

[Validate]

Generated with the Darkfish Rdoc Generator 2.