alchemy / rabbitmq-management-client
RabbitMQ 管理插件 API 客户端
0.2.1
2017-03-20 10:06 UTC
Requires
- doctrine/common: >=2.0
- guzzlehttp/guzzle: ~3.0
Requires (Dev)
- phpunit/phpunit: ~3.7
- react/curry: ~1.0
- react/promise: ~1.0
- react/react: ~0.2.0
- sami/sami: ~1.0
- videlalvaro/php-amqplib: dev-master@dev
Suggests
- react/react: Version 0.2 to use the async client
This package is auto-updated.
Last update: 2024-09-15 02:14:12 UTC
README
这个库旨在帮助应用程序中管理 RabbitMQ 服务器。它提供了两种查询 RabbitMQ 的方式:使用 Guzzle 的同步查询和使用 React 的异步查询。
异步查询
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();
异步客户端目前不支持保证 API。
同步查询
确保队列有一个标志
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); }
您还可以使用保证管理器
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 浏览器
在此处浏览 API 这里。
文档
在 Read The Docs 阅读文档!
许可证
这个库是在 MIT 许可证下发布的(使用它吧!)