NAME
POE::Component::Client::AMQP::Queue - AMQP Queue object
DESCRIPTION
Create using the POE::Component::Client::AMQP::Channel objects' queue()
command. Calling queue()
also retrieves previously created Queue objects. Alternatively, you can use the create()
class method below to create it directly, but doing so will not send the Queue.Declare call to the AMQP server.
CLASS METHODS
create (...)
Pass two named args 'name' (optional) and 'channel'.
OBJECT METHODS
name
Returns the queue name
channel
Returns the POE::Component::Client::AMQP::Channel parent object.
is_created
Returns a boolean, indicating wether the queue has been created on the AMQP server yet or not.
do_when_created (...)
See POE::Component::Client::AMQP::do_when_startup(); similar behavior.
subscribe ($subref, \%opts)
Sends a Net::AMQP::Protocol::Basic::Consume frame to the server, storing the $subref as a callback function for when content is received.
Optionally provide %opts which will override defaults for the Basic.Consume call.
The argument signature of the callback is like so:
my $do_ack = $subref->($message, $meta)
- $do_ack
-
If in the %opts hash you choose 'no_ack => 0', then messages have to be explicitly ack'ed once handled. If your callback returns true in this condition, an ack message will automatically be sent for you.
- $message
-
Opaque payload of the content body.
- $meta
-
Hashref with keys as follows:
- method_frame
-
Net::AMQP::Protocol::Base delivering method object.
- header_frame
-
Net::AMQP::Protocol::Base delivering ContentHeader object.
- weight, body_size
-
Copied from the header_frame object.
- payload
-
Same as the $message argument above.
- body_frames
-
Array of all the Net::AMQP::Frame::Body frames that comprise the payload.
- queue
-
The name of this queue object.
- opts
-
The options used to create the Basic.Consume call (merge of default values and %opts, above)
publish ($message, \%opts)
Sends a message to the queue. In other words, sends a Net::AMQP::Protocol::Basic::Publish followed by a Net::AMQP::Protocol::Basic::ContentHeader and Net::AMQP::Frame::Body containing the body of the message.
Optionally pass %opts, which can override any option in the Net::AMQP::Protocol::Basic::Publish ('ticket', 'exchange', 'routing_key', 'mandatory', 'immediate'), Net::AMQP::Frame::Header ('weight') or Net::AMQP::Protocol::Basic::ContentHeader ('content_type', 'content_encoding', 'headers', 'delivery_mode', 'priority', 'correlation_id', 'reply_to', 'expiration', 'message_id', 'timestamp', 'type', 'user_id', 'app_id', 'cluster_id') objects. See the related documentation for an explaination of each.
bind (%opts)
Shortcut to send a Queue.Bind call with this queue name. Pass the same args you'd pass to a Net::AMQP::Protocol::Queue::Bind object creation.
SEE ALSO
POE::Component::Client::AMQP::Channel
COPYRIGHT
Copyright (c) 2009 Eric Waters and XMission LLC (http://www.xmission.com/). All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
AUTHOR
Eric Waters <ewaters@gmail.com>