gearman 및 해당 pecl php 확장자를 성공적으로 구성하고 사용했습니다. 백그라운드에서 긴 SQL 쿼리와 관련하여 긴 프로세스를 실행하는 데 사용하고 있습니다. 세부 사항이 도움이된다면 Yii btw를 사용하고 있습니다. 당신은 내가 과정을 볼 것이 아니라 수 있도록 내가하는 그놈 터미널 먼저 실행 통지하는 경우gearman php에서 작업자 시작 및 중지
:
public function actionProcessWithGearman(){
$output = shell_exec('gnome-terminal -e "php workers/worker.php" > /dev/null 2>/dev/null &');
$client = new GearmanClient();
$client->addServer();
$result = $client->doBackground('executeJob',//parameters);
}
일부 세부 정보 : 여기
내가 그것을 사용하는 방법 php 명령으로 직접 이동하려면 /dev/null도 추가해야합니다.이므로 더 이상 응답을 기다리지 않습니다. 그리고 나서 노동자는 깨어나 직장을 운영합니다.
문제 :
이 작업은 여러 번 실행하거나 다른 클라이언트에서 여러 사용자에 의해 실행, 그 결과, 다수의 단말기가 worker.php가 인스턴스화되고 실행 때 내 문제가 발생한다.
명의 근로자는 어떻게 하나일까요? 다른 클라이언트의 여러 사용자에 대해 여러 명의 작업자가있을 수 있더라도 작업이 완료 될 때마다 어떻게 작업자를 닫을 수 있습니까?