XML-RPC API を通じてsupervisor管理するための PHP ライブラリ。
作曲家経由
composer require supervisor php/ supervisor
このライブラリは、高速かつ強力な fXmlRpc ライブラリに依存しています。このライブラリは、接続を確立するために優先 HTTP クライアントを使用するための多数のアダプタをサポートしています。
以下の例では、人気のある Guzzle HTTP クライアント ライブラリを使用します。
この例が機能するには、いくつかの追加ライブラリが必要です。必要な追加コンポーネントを含めるには、次を実行できます。
composer require guzzlehttp/guzzle:^7.0
この例では、認証資格情報を Guzzle に渡し、fXmlRpc クライアントを開始し、それをsupervisor PHP に渡す方法を示します。
// Create Guzzle HTTP client
$ guzzleClient = new GuzzleHttp Client ([
' auth ' => [ ' user ' , ' 123 ' ],
]);
// Pass the url and the guzzle client to the fXmlRpc Client
$ client = new fXmlRpc Client (
' http://127.0.0.1:9001/RPC2 ' ,
new fXmlRpc Transport PsrTransport (
new GuzzleHttp Psr7 HttpFactory (),
$ guzzleClient
)
);
// Or, if connecting via a Unix Domain Socket
$ guzzleClient = new GuzzleHttp Client ([
' curl ' => [
CURLOPT_UNIX_SOCKET_PATH => ' /var/run/ supervisor .sock ' ,
],
]);
$ client = new fXmlRpc Client (
' http://localhost/RPC2 ' ,
new fXmlRpc Transport PsrTransport (
new GuzzleHttp Psr7 HttpFactory (),
$ guzzleClient
)
);
// Pass the client to the supervisor library.
$ supervisor = new supervisor supervisor ( $ client );
// 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 ();
考えられる障害応答ごとに例外があります。これらの例外は共通の例外を拡張するため、特定の障害またはすべてを捕捉できます。サーバーから不明な障害が返された場合、インスタンスの共通例外がスローされます。障害応答のリストと適切な例外はクラス内にあります。
/** @var supervisor supervisor $ supervisor */
try {
$ supervisor -> startProcess ( ' process ' , true );
} catch ( supervisor Exception Fault BadNameException $ e ) {
// handle bad name error here
} catch ( supervisor Exception supervisor Exception $ e ) {
// handle any other errors here
}
構成コンポーネントとイベント コンポーネントは独自のリポジトリに移動されました。
supervisor XML-RPC ドキュメントは、http://supervisord.org/api.html で見つけることができます。
PHP XML-RPC 拡張機能を使用して応答を解析する場合 (これはEXPERIMENTALとしてマークされています)。これにより、PROCESS のログを読み取り/末尾に記録しようとすると問題が発生する可能性があります。ログ メッセージを必ず消去してください。これに関して私が見つけた唯一の情報はコメントです。
詳細については、「貢献」を参照してください。
$ composer test
機能テスト (behat):
$ behat
このリポジトリには、簡単にテストできるように Docker Compose 構成と Dockerfile が付属しています。テストは次の方法で実行できます。
docker-compose run --rm ci
これは完全なsupervisorクライアントになることを目指していますが、これが最初のクライアントではありません。ただし、一部の作成者は、これを支持してパッケージを非推奨にすることを決定しました。
MIT ライセンス (MIT)。詳細については、ライセンス ファイルを参照してください。