https://github.com/tynovsky/anyevent-rabbitmq-pubsub
https://github.com/tynovsky/anyevent-rabbitmq-pubsub
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tynovsky/anyevent-rabbitmq-pubsub
- Owner: tynovsky
- License: other
- Created: 2016-09-23T13:25:05.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2018-05-24T13:53:45.000Z (about 8 years ago)
- Last Synced: 2025-03-22T14:41:27.788Z (over 1 year ago)
- Language: Perl
- Size: 22.5 KB
- Stars: 1
- Watchers: 1
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/avast/AnyEvent-RabbitMQ-PubSub)
# 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