alchemy/rabbitmq-management-client

RabbitMQ Management Plugin API Client

0.2.1 2017-03-20 10:06 UTC

Requires

Requires (Dev)

Suggests

Provides

None

Conflicts

None

Replaces

None

MIT d1fd8e70db0bfc03a410f211103e155bf7ef9d79

  • Romain Neutron <imprec.woop@gmail.com>

apirabbitmqmanagement

This package is auto-updated.

Last update: 2026-06-15 06:10:45 UTC


README

👁 Build Status

This library is intended to help management of RabbitMQ server in an application. It provides two ways to query RabbitMQ : Synchronous query with Guzzle and Asynchronous query with React.

Asynchronous Queries

use RabbitMQ\Management\AsyncAPIClient;
use React\EventLoop\Factory;

$loop = Factory::create();

$client = AsyncAPIClient::factory($loop, array(
 'url' => '127.0.0.1',
));

$loop->addPeriodicTimer(1, function () use ($client) {
 $client->listQueues()
 ->then(function($queues) {
 echo "\n------------\n";
 foreach ($queues as $queue) {
 echo sprintf("Found queue %s with %d messages\n", $queue->name, $queue->messages);
 }
 }, function ($error) {
 echo "An error occured : $error\n";
 });
});

$loop->run();

Asynchronous Client do not currently support Guarantee API.

Synchronous Queries

Ensure a queue has a flag :

use RabbitMQ\Management\APIClient;
use RabbitMQ\Management\Entity\Queue;
use RabbitMQ\Management\Exception\EntityNotFoundException;

$client = APIClient::factory(array('url'=>'localhost'));

try {
 $queue = $client->getQueue('/', 'queue.leuleu');

 if (true !== $queue->durable) {
 $queue->durable = true;

 $client->deleteQueue('/', 'queue.leuleu');
 $client->addQueue($queue);
 }

} catch (EntityNotFoundException $e) {
 $queue = new Queue();
 $queue->vhost = '/';
 $queue->name = 'queue.leuleu';
 $queue->durable = true;

 $client->addQueue($queue);
}

You can also use the Guarantee manager :

use RabbitMQ\Management\APIClient;
use RabbitMQ\Management\Entity\Queue;
use RabbitMQ\Management\Guarantee;

$client = APIClient::factory(array('url'=>'localhost'));
$manager = new Guarantee($client);

$queue = new Queue();
$queue->vhost = '/';
$queue->name = 'queue.leuleu';
$queue->durable = true;
$queue->auto_delete = false;

$queue = $manager->ensureQueue($queue);

API Browser

Browse the API here.

Documentation

Read the documentation at Read The Docs !

License

This library is released under the MIT license (use it baby !)