GithubHelp home page GithubHelp logo

anyevent-rabbitmq-pubsub's Introduction

Build Status

NAME

AnyEvent::RabbitMQ::PubSub - Publish and consume RabbitMQ messages.

SYNOPSIS

# print 'received Hello World' and exit

use AnyEvent;
use AnyEvent::RabbitMQ::PubSub;
use AnyEvent::RabbitMQ::PubSub::Publisher;
use AnyEvent::RabbitMQ::PubSub::Consumer;

my ($rmq_connection, $channel) = AnyEvent::RabbitMQ::PubSub::connect(
    host  => 'localhost',
    port  => 5672,
    user  => 'guest',
    pass  => 'guest',
    vhost => '/',
);

my $exchange = {
    exchange    => 'my_test_exchange',
    type        => 'topic',
    durable     => 0,
    auto_delete => 1,
};

my $queue = {
    queue       => 'my_test_queue';
    auto_delete => 1,
};

my $routing_key = 'my_rk';

my $cv = AnyEvent->condvar;

my $consumer = AnyEvent::RabbitMQ::PubSub::Consumer->new(
    channel        => $channel,
    exchange       => $exchange,
    queue          => $queue,
    routing_key    => $routing_key,
);
$consumer->init(); #declares channel, queue and binding
$consumer->consume(
    $cv,
    sub {
        my ($consumer, $msg) = @_;
        print 'received ', $msg->{body}->payload, "\n";
        $consumer->ack($msg);
        $cv->send();
    },
);

my $publisher = AnyEvent::RabbitMQ::PubSub::Publisher->new(
    channel     => $channel,
    exchange    => $exchange,
    routing_key => $routing_key,
);
$publisher->init(); #declares exchange;
$publisher->publish(body => 'Hello World');

$cv->recv();

DESCRIPTION

AnyEvent::RabbitMQ::PubSub allows to easily create publishers and consumers of RabbitMQ messages.

LICENSE

Copyright (C) Avast Software.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Miroslav Tynovsky [email protected]

anyevent-rabbitmq-pubsub's People

Contributors

luckamohelnikova avatar tynovsky avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

jasei avast pepl

anyevent-rabbitmq-pubsub's Issues

Typo in synopsis

There is a typo in the synopsis:

my $queue = {
    queue       => 'my_test_queue'; <==========
    auto_delete => 1,
};

The semicolon should be a comma.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.