AnyEvent-RabbitMQ-Simple

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

NAME
    AnyEvent::RabbitMQ::Simple - Easy to use asynchronous AMQP client

VERSION
    version 0.02

SYNOPSIS
        use strict;
        use warnings;
        use AnyEvent::RabbitMQ::Simple;

        # create main loop
        my $loop = AE::cv;

        my $rmq = AnyEvent::RabbitMQ::Simple->new(
            host       => '127.0.0.1',
            port       => 5672,
            user       => 'username',
            pass       => 'password',
            vhost      => '/',
            timeout    => 1,
            tls        => 0,
            verbose    => 0,
            confirm_publish => 1,
            prefetch_count => 10,

            failure_cb => sub {
                my ($event, $details, $why) = @_;
                if ( ref $why ) {
                    my $method_frame = $why->method_frame;
                    $why = $method_frame->reply_text;
                }
                $loop->croak("[ERROR] $event($details): $why" );
            },

            # routing layout
            # [========== exchanges ===================] [===== queues ==============]
            # [             (type/routing key)         ] [        (routing key) ]
            #  logger ----------> stats -------------->   stats-logs
            #   |(fanout)           (direct)                (mail.stats)
            #   |  |
            #   |  | \----------> errors ------------->   ftp-error-logs
            #   |  |              | (topic:*.error.#)       (ftp.error.#)
            #   |  |              |
            #   |  |              \------------------->   mail-error-logs
            #   |  |                                        (mail.error.#)
            #   |  |
            #   |   \-----------> info --------------->   info-logs
            #   |                   (topic:*.info.#)        (*.info.#)
            #   |
            #    \------------------------------------>   debug-queue


            # declare exchanges
            exchanges => [
                'logger' => {
                    durable => 0,
                    type => 'fanout',
                    internal => 0,
                    auto_delete => 1,
                },
                'stats' => {



( run in 0.477 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )