Amazon-SQS-Client
view release on metacpan or search on metacpan
lib/Amazon/SQS/QueueHandler.pm view on Meta::CPAN
use strict;
use warnings;
package Amazon::SQS::QueueHandler;
use Data::Dumper;
use English qw(-no_match_vars);
use Amazon::Credentials;
use Amazon::SQS::Model::DeleteMessageRequest;
use Amazon::SQS::Model::ReceiveMessageRequest;
use Amazon::SQS::Client;
use CGI::Simple;
use JSON;
use List::Util qw(none max);
__PACKAGE__->follow_best_practice;
__PACKAGE__->mk_accessors(
qw(
config
create_queue
credentials
endpoint_url
logger
max_error_retry
message
message_id
message_type
message_body
raw_message
receipt_handle
request
region
service
signature_version
queue_list
name
max_messages
url
visibility_timeout
wait_time
)
);
use parent qw(Class::Accessor::Fast);
our @VALID_MESSAGE_TYPES = qw(
text/plain
application/json
application/x-www-form-urlencoded
);
our $DEFAULT_ENDPOINT_URL = 'https://queue.amazonaws.com';
our $MAX_MESSAGES = 1;
our $TRUE = 1;
our $FALSE = 0;
########################################################################
sub new {
########################################################################
my ( $class, @args ) = @_;
my $options = ref $args[0] ? $args[0] : {@args};
$options->{credentials} //= Amazon::Credentials->new;
my $self = $class->SUPER::new($options);
$self->init_defaults();
$self->create_service();
if ( $self->get_name && !$self->get_url ) {
my %queue_list = reverse $self->list_queues();
if ( $self->get_create_queue ) {
$self->create_queue( $self->get_name );
( run in 0.778 second using v1.01-cache-2.11-cpan-39bf76dae61 )