Amazon-SQS-Client
view release on metacpan or search on metacpan
share/ReceiveMessage.pm view on Meta::CPAN
package ReceiveMessage;
use strict;
use warnings;
use Amazon::SQS::Model::ReceiveMessageRequest;
use Data::Dumper;
use parent qw(Amazon::SQS::Sample);
########################################################################
sub sample {
########################################################################
my ( $self, $queue_url ) = @_;
my $service = $self->get_service;
my $config = $self->get_config;
$queue_url //= $config && $config->get_queue_url;
if ( !$queue_url ) {
$self->help();
}
my $request = Amazon::SQS::Model::ReceiveMessageRequest->new(
{ QueueUrl => $queue_url,
MaxNumberOfMessages => 10,
WaitSeconds => 20,
}
);
my $response = $service->receiveMessage($request);
if ( $response->isSetReceiveMessageResult() ) {
my $receiveMessageResult = $response->getReceiveMessageResult();
my $messageList = $receiveMessageResult->getMessage();
foreach ( @{$messageList} ) {
my $message = $_;
if ( $message->isSetMessageId() ) {
my $messageId = $message->getMessageId();
if ( $message->isSetReceiptHandle() ) {
my $receiptHandle = $message->getReceiptHandle();
print {*STDOUT} sprintf "RECEIPT_HANDLE='%s'\n", $receiptHandle;
}
if ( $message->isSetMD5OfBody() ) {
my $md5 = $message->getMD5OfBody();
}
if ( $message->isSetBody() ) {
print {*STDOUT} sprintf "MESSAGE='%s'\n", $message->getBody();
}
my $attributeList = $message->getMessageAttribute();
foreach ( @{$attributeList} ) {
my $attribute = $_;
if ( $attribute->isSetName() ) {
my $name = $attribute->getName();
}
if ( $attribute->isSetValue() ) {
my $value = $attribute->getValue();
}
}
}
}
( run in 0.608 second using v1.01-cache-2.11-cpan-39bf76dae61 )