개발 과정에서 비동기 처리는 시간이 많이 걸리는 작업에 직면 할 때 프로그램 성능과 응답 속도를 효과적으로 향상시킬 수 있습니다. PHP는 오픈 소스 분산 작업 대기열 관리 시스템 Gearman을 사용하여 작업의 배포 및 처리를 실현할 수 있습니다. 이 기사는 Gearman 설치, 구성 및 응용 프로그램 예제를 가져와 작업 배포의 구현 방법을 신속하게 마스터하는 데 도움이됩니다.
먼저 Gearman Extension을 설치해야합니다. PECL 도구를 사용하여 다음 명령을 실행할 수 있습니다.
<span class="fun">PECL 설치 Gearman</span>
설치가 완료되면 php.ini 파일에 확장 선언을 추가하십시오.
<span class="fun">Extension = Gearman.so</span>
Gearman은 작업을 수락하고 일정하려면 서버 측을 시작해야합니다. 다음 명령으로 Gearman 서버를 시작하십시오.
<span class="fun">Gearmand -Daemon</span>
기본적으로 Gearman 서버는 LocalHost의 포트 4730을 듣습니다.
PHP에서 Gearmanclient 클래스를 통해 작업 분배기를 만듭니다. 샘플 코드는 다음과 같습니다.
$client = new GearmanClient();
$client->addServer(); // 기본 연결localhost:4730
// 작업을 추가하십시오
$client->addTask('my_task', 'my_data');
// 작업을 제출하십시오
$client->runTasks();
코드에서 Gearmanclient 객체가 생성되고 Gearman 서버가 기본적으로 연결됩니다. AddTask 메소드를 통해 작업을 추가하면 작업을 "My_task"라고하며 데이터는 "My_Data"이며 마지막으로 Runtasks를 호출하여 작업을 제출합니다.
작업 처리기는 Gearmanworker 클래스를 사용하여 다음과 같이 코드 예제를 만듭니다.
$worker = new GearmanWorker();
$worker->addServer(); // 기본 연결localhost:4730
// 작업 처리 기능을 등록하십시오
$worker->addFunction('my_task', 'my_task_handler');
// 작업 모니터링을 시작하십시오
while ($worker->work());
// 작업 처리 기능
function my_task_handler($job) {
$data = $job->workload();
// 작업 논리 처리
return $result;
}
위의 코드에서 Gearmanworker 객체는 작업 처리 기능 "My_task_handler"를 등록하고 클라이언트가 보낸 "My_task"작업을 리터닝하고 처리합니다. 작업 데이터는 $ job-> workload ()를 통해 얻어지며 처리가 완료된 후 결과가 반환됩니다.
이 기사는 Gearman을 사용하여 Gearman Extension 설치, 서버 시작, 작업 분배기 및 프로세서 생성 및 샘플 코드를 포함한 PHP 비동기 작업 배포를 구현하는 프로세스를 소개합니다. Gearman은 시간이 많이 걸리는 작업을 비동식화하여 시스템 성능 및 동시 처리 기능을 향상시킬 수 있습니다.
Gearman 작업 대기열의 합리적인 사용은 기본 스레드 리소스를 효과적으로 방출하여 PHP 응용 프로그램을보다 효율적이고 유연하게 만들 수 있습니다.