2011-11-21 5 views
11

PHP 5.3.8에서 Ubuntu Natty를 사용하고 있습니다. 방금 Gearman이 내 서버에서 작업하고 있습니다. 백그라운드에서 Gearman Workers를 실행 중입니다.

나는 내가 PHP 매뉴얼을 가지고 몇 가지 스크립트 몇 가지 검사를했고, 모든 작품을 좋아.

그러나 나는 백그라운드에서 작업자를 실행할 수있는 방법이 있는지 알고 싶습니다. 또한 다중 작업자 상황으로 이동할 때 얼마나 많은 작업자를 추적 할 수 있는지 모니터링하고 있습니다. 나는 일하고있어.

일반적으로, 나는 두 터미널, 작업자에 대한 하나의 클라이언트에 대한 하나를 열어야합니다. PHP 스크립트가 실행 된 후 작업자가 '멈춤'상태가됩니다.

미리 감사드립니다.

답변

19

좋아 브라이언 달에 의해 GearmanManager을 사용할 수 있습니다. 이전 문제에 대한 해결책을 찾았습니다. 그것은 Supermanord를 사용하여 기어맨 작업자를 탈모하는 것을 포함합니다. 다음

chmod +x /etc/init.d/supervisord 
update-rc.d -f supervisord defaults 

당신 :

여기 Supervisord가

여기
apt-get install python-setuptools 
easy_install supervisor 
echo_supervisord_conf > /etc/supervisord.conf 

이 (첫번째 here에서 init 스크립트를 얻고 /etc/init.d/supervisord에 저장)를 구성하는 방법은 다음, 다음과 같이 설치하는 방법 슈퍼 바이저에게 데몬으로 실행할 명령을 알려주도록 supervisor.conf 파일을 업데이트해야합니다 (물론 이것은 기어맨 작업자가됩니다). 아래는 supervisord.conf 파일에 추가 할 샘플의 예입니다. 사용자 고유의 특정 상황으로 업데이트해야합니다. 작업이 완료되면

[program:gearman] 
command=/usr/bin/php php_gearman_worker.php 
numprocs=1 
directory=/root/gearman 
stdout_logfile=/root/gearman/supervisord.log 
environment=GEARMAN_USER=gearman 
autostart=true 
autorestart=true 
user=gearman 
stopsignal=KILL 

, 다음 supervisord 즉 /etc/init.d/supervisord start 시작합니다.

이렇게하면 Gearman 작업자가 활성화되어 이제 명령 줄이나 브라우저를 사용하여 gearman 클라이언트를 실행할 수 있습니다.

이 정보가 도움이되기를 바랍니다.

+2

''apt-get install supervisor' 그리고'[program : gearman]'과'command = '명령으로'/ etc/supervisor/conf.d// usr/bin/php php_gearman_worker.php'이 저에게 필요한 전부였습니다. –

5
+0

덕분에 많은,하지만 난 Supervisord를 사용하여 다른 더 채굴 할 수있는 방법을 찾았다. –

+0

GearMan 모니터와 Gearman Manager가 함께해야합니다. https://github.com/yugene/Gearman-Monitor – rjha94

5

또 다른 옵션은 분리 된 껍질로 작업자의 작업을 넣어 screen을 사용하는 것입니다

screen -d -m php worker.php 
+0

고맙습니다. – pregmatch

관련 문제