Mojo::RabbitMQ::Client::Publisher(3pm)

Mojo::RabbitMQ::Client::Publisher3pm

Simple mojo::rabbitmq::client based publisher

Usage

  use Mojo::RabbitMQ::Client::Publisher;
  my $publisher = Mojo::RabbitMQ::Client::Publisher->new(
    url => 'amqp://guest:[email protected]:5672/?exchange=mojo&routing_key=mojo'
  );
  $publisher->publish_p(
    {encode => { to => 'json'}},
    routing_key => 'mojo_mq'
  )->then(sub {
    say "Message published";
  })->catch(sub {
    die "Publishing failed"
  })->wait;

Overview

Attributes

Mojo::RabbitMQ::Client::Publisher has following attributes.

url

Sets all connection parameters in one string, according to specification from <https://www.rabbitmq.com/uri-spec.html>.

For detailed description please see Mojo::RabbitMQ::Client#url.

Methods

Mojo::RabbitMQ::Client::Publisher implements only single method.

publish_p

  $publisher->publish_p('simple plain text body');
  $publisher->publish_p({ some => 'json' });
  $publisher->publish_p($body, { header => 'content' }, routing_key => 'mojo', mandatory => 1);

Method signature

  publish_p($body!, \%headers?, *@params)
body

First argument is mandatory body content of published message. Any reference passed here will be encoded as JSON and accordingly "content_type" header will be set to "application/json".

headers

If second argument is a HASHREF it will be merged to message headers.

params

Any other arguments will be considered key/value pairs and passed to the Client's publish method as arguments overriding everything besides body argument.

So this:

  $publisher->publish({ json => 'object' }, { header => 'content' });

is similar to this:

  $publisher->publish({ json => 'object' }, header => { header => 'content' });

But beware - headers passed as a HASHREF get merged into the header constructed by the Publisher, but params override values; so if you pass "header" as a param like this, it will override the header constructed by the Publisher, and the message will lack the "content_type" header, even though you passed a reference as the body argument! With the first example, the "content_type" header would be included.

Releases

4 releases since Debian 10 (Buster); the text changed 2 times.

  1. 10
  2. 11
  3. 12–13

From libmojo-rabbitmq-client-perl 0.3.1-3 in Debian 13 (Trixie). Parsed by carta from the page's man source.