frag-seb/supervisor-client

supervisor的PHP客户端

dev-master 2017-09-25 05:29 UTC

This package is auto-updated.

Last update: 2024-09-29 05:01:06 UTC


README

Software License Build Status Coverage Status codecov

Total Downloads

Supervisor API 客户端

待办事项

  • 文档
  • 示例
  • 等等

创建客户端管理器的简单示例。

<?php


use FragSeb\Supervisor\Factory\ManagerFactory;

/** @var Composer\Autoload\ClassLoader $loader */
$loader = require __DIR__.'/../vendor/autoload.php';

$config = [
    'master' => [
        'host' => 'https://:9001/RPC2',
        'auth' => [
            'username' => 'user',
            'password' => 123
        ]
    ],
    'slave' => [
        'host' => 'https://2:9001/RPC2',
        'auth' => [
            'username' => 'user',
            'password' => 123
        ]
    ]
];

$factory = new ManagerFactory();

$manager =  $factory->create($config);

try {
    $client = $manager;
    
    var_dump($client->getAllProcessInfo());
} catch (\Exception $exception) {
    echo 'message: ' . $exception->getMessage() . PHP_EOL;
    echo 'code: ' . $exception->getCode() . PHP_EOL;
    exit;
}

多服务器调用的示例。

<?php

use FragSeb\Supervisor\Factory\ClientFactory;
use FragSeb\Supervisor\Factory\XmlRpcConnectorFactory;
use FragSeb\Supervisor\Serializer\XmlRpcSerializer;
use FragSeb\Supervisor\Registry\ServerRegistry;
use FragSeb\Supervisor\Registry\ClientRegistry;
use FragSeb\Supervisor\ClientManager;
use FragSeb\Supervisor\Factory\ServerFactory;
use FragSeb\Supervisor\Response\ResponseBuilder;

/** @var Composer\Autoload\ClassLoader $loader */
$loader = require __DIR__.'/../vendor/autoload.php';

$config = [
    'master' => [
        'host' => 'https://:9001/RPC2',
        'auth' => [
            'username' => 'user',
            'password' => 123
        ]
    ],
    'slave' => [
        'host' => 'https://2:9001/RPC2',
        'auth' => [
            'username' => 'user',
            'password' => 123
        ]
    ]
];

$clientRegistry = new ClientRegistry(
    new ServerRegistry($config, new ServerFactory),
    new XmlRpcConnectorFactory(new XmlRpcSerializer),
    new ClientFactory(new ResponseBuilder)
);

/** @var \FragSeb\Supervisor\Client\ClientInterface $manager */
$manager =  new ClientManager($clientRegistry);


try {
    var_dump($manager->getAllProcessInfo());
} catch (\Exception $exception) {
    echo 'message: ' . $exception->getMessage() . PHP_EOL;
    echo 'code: ' . $exception->getCode() . PHP_EOL;
    exit;

}

单次调用的示例。

<?php

use FragSeb\Supervisor\Factory\ClientFactory;
use FragSeb\Supervisor\Factory\XmlRpcConnectorFactory;
use FragSeb\Supervisor\Serializer\XmlRpcSerializer;
use FragSeb\Supervisor\Registry\ServerRegistry;
use FragSeb\Supervisor\Registry\ClientRegistry;
use FragSeb\Supervisor\ClientManager;
use FragSeb\Supervisor\Factory\ServerFactory;
use FragSeb\Supervisor\Response\ResponseBuilder;

/** @var Composer\Autoload\ClassLoader $loader */
$loader = require __DIR__.'/../vendor/autoload.php';

$config = [
    'master' => [
        'host' => 'https://:9001/RPC2',
        'auth' => [
            'username' => 'user',
            'password' => 123
        ]
    ],
    'slave' => [
        'host' => 'https://2:9001/RPC2',
        'auth' => [
            'username' => 'user',
            'password' => 123
        ]
    ]
];

$clientRegistry = new ClientRegistry(
    new ServerRegistry($config, new ServerFactory),
    new XmlRpcConnectorFactory(new XmlRpcSerializer),
    new ClientFactory(new ResponseBuilder)
);

/** @var \FragSeb\Supervisor\Client\ClientInterface $manager */
$manager =  new ClientManager($clientRegistry);

try {
    $client = $manager->getClient('master');
    
    var_dump($client->getAllProcessInfo());
} catch (\Exception $exception) {
    echo 'message: ' . $exception->getMessage() . PHP_EOL;
    echo 'code: ' . $exception->getCode() . PHP_EOL;
    exit;
}