innmind/rabbitmq-management

rabbitmq管理的抽象

3.2.0 2023-09-23 09:25 UTC

This package is auto-updated.

Last update: 2024-09-23 11:27:37 UTC


README

Build Status codecov Type Coverage

rabbitmqadmin命令的包装器。

安装

composer require innmind/rabbitmq-management

使用

use Innmind\RabbitMQ\Management\{
    Status,
    Control,
};
use Innmind\OperatingSystem\Factory;

$os = Factory::build();
$status = Status::of(
    $os->control(),
    $os->clock(),
);
$status->users();
$status->vhosts();
$status->connections();
$status->exchanges();
$status->permissions();
$status->channels();
$status->consumers();
$status->queues();
$status->nodes();

$control = Control::of($server);
$control->users();
$control->vhosts();
$control->permissions();

本质上这将运行服务器上的rabbitmqadmin list {element}并提取信息。

如果您需要列出远程服务器的信息,则可以简单地这样做

use Innmind\RabbitMQ\Management\Status\Environment\Remote;
use Innmind\Url\{
    Authority\Host,
    Authority\Port,
    Path,
};

Status::of(
    $os->control(),
    $os->clock(),
    Remote::of(
        Host::of('your-host'),
        Port::of(1337),
        'username',
        'password',
        Path::of('/some-vhost'),
    ),
);

但是为了使这生效,您需要在运行此代码的机器上安装rabbitmqadmin

如果您在机器上没有此命令,可以将$os->control()替换为$os->remote()->ssh(/*...*/),这样它将使用ssh在机器上运行命令(您需要从Status::of()中移除第三个参数)。