indigophp/supervisor

此包已被 弃用 并不再维护。作者建议使用 supervisorphp/supervisor 包。

Supervisor 的 PHP 库

v3.0.0 2015-01-13 01:44 UTC

README

弃用通知

此包已移至 SupervisorPHP。

https://github.com/supervisorphp/supervisor

更多详情请见 http://supervisorphp.com

Indigo Supervisor

Latest Version Software License Build Status Code Coverage Quality Score HHVM Status Total Downloads Dependency Status

通过 XML-RPC API 管理 supervisord 的 PHP 库。

安装

通过 Composer

$ composer require indigophp/supervisor

使用

use Indigo\Supervisor\Supervisor;
use Indigo\Supervisor\Connector\XmlRpc;
use fXmlRpc\Client;
use fXmlRpc\Transport\Guzzle4Bridge;

// Pass the url and the bridge to the XmlRpc Client
$client = new Client(
	'http://127.0.0.1:9001/RPC2',
	new Guzzle4Bridge(new \GuzzleHttp\Client(['defaults' => ['auth' => ['user', '123']]]))
);

// Pass the client to the connector
// See the full list of connectors bellow
$connector = new XmlRpc($client);

$supervisor = new Supervisor($connector);

// returns Process object
$process = $supervisor->getProcess('test_process');

// returns array of process info
$supervisor->getProcessInfo('test_process');

// same as $supervisor->stopProcess($process);
$supervisor->stopProcess('test_process');

// Don't wait for process start, return immediately
$supervisor->startProcess($process, false);

// returns true if running
// same as $process->checkState(Process::RUNNING);
$process->isRunning();

// returns process name
echo $process;

// returns process information
$process->getPayload();

目前可用的连接器

注意: fXmlRpc 可以与多个 HTTP 客户端一起使用。请参阅其网站上的列表。这是移除特定客户端连接器的原因。

认证

从 3.0.0 版本开始,setCredentials 已不再是 Connector 接口的一部分(意味着责任已被完全移除)。您必须提供您选择的 HTTP 客户端的认证数据。(例如,Guzzle 支持它)此外,fXmlRpc 实现的桥梁支持设置自定义头。

异常处理

对于每个可能的故障响应,都有一个异常。这些异常扩展了一个 通用异常,因此您可以选择捕获特定的故障或所有故障。当服务器返回未知故障时,将抛出一个通用异常实例。您可以在类中找到故障响应列表和相应的异常。

use Indigo\Supervisor\Exception\Fault;
use Indigo\Supervisor\Exception\Fault\BadName;

try {
	$supervisor->restart('process');
} catch (BadName $e) {
	// handle bad name error here
} catch (Fault $e) {
	// handle any other errors here
}

对于开发者: 故障异常是自动生成的,无需手动修改。

配置和事件监听

配置事件 组件已被移入各自的仓库。请参阅 #24 以获取解释。

更多信息

您可以在以下位置找到 XML-RPC 文档: http://supervisord.org/api.html

注意

如果您使用 PHP XML-RPC 扩展来解析响应(标记为 实验性),则在尝试读取/跟踪进程日志时可能会出现问题。请确保清理您的日志消息。关于此问题的唯一信息是一个 评论

您还必须确保始终使用正确的参数调用函数。Zend 连接器在传递错误参数时将触发错误。有关详细信息,请参阅此问题。(根据我对代码的检查,这在未来一段时间内可能不会改变。)其他连接器将抛出Fault异常。

组件包

以下是一个框架特定的组件包列表

测试

$ phpspec run

贡献

有关详细信息,请参阅CONTRIBUTING

鸣谢

许可

MIT 许可证(MIT)。请参阅许可文件以获取更多信息。