XML-RPC API를 통해 supervisor 관리하기 위한 PHP 라이브러리입니다.
작곡가를 통해
composer require supervisor php/ supervisor
이 라이브러리는 선호하는 HTTP 클라이언트를 사용하여 연결하는 데 필요한 여러 어댑터를 지원하는 빠르고 강력한 fXmlRpc 라이브러리에 의존합니다.
아래 예에서는 널리 사용되는 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의 로그를 읽거나 마무리하려고 할 때 문제가 발생할 수 있습니다. 로그 메시지를 정리했는지 확인하세요. 이것에 대해 내가 찾은 유일한 정보는 의견입니다.
자세한 내용은 CONTRIBUTING을 참조하세요.
$ composer test
기능 테스트(behat):
$ behat
이 리포지토리에는 간편한 테스트를 위해 Docker Compose 구성 및 Dockerfile이 함께 제공됩니다. 테스트는 다음을 통해 실행할 수 있습니다.
docker-compose run --rm ci
이것이 완전한 supervisor 클라이언트가 되려고 시도하는 동안 이것이 첫 번째 클라이언트는 아닙니다. 그러나 일부 작성자는 이를 위해 패키지를 더 이상 사용하지 않기로 결정했습니다.
MIT 라이센스(MIT). 자세한 내용은 라이센스 파일을 참조하십시오.