2011-11-21 14 views
11

Używam Ubuntu Natty z PHP 5.3.8. Właśnie Gearman pracował na moim serwerze.Pracownicy biegaczy biegowych w tle

Zrobiłem kilka testów z niektórymi skryptami, które dostałem z podręcznika PHP i wszystko działa dobrze.

Chciałbym jednak wiedzieć, czy istnieje sposób, w jaki mogę uruchomić pracownika w tle, a także monitorować go, aby po przejściu do sytuacji wielozakładowej móc śledzić liczbę pracowników Pracuję.

Zazwyczaj musiałbym otworzyć dwa terminale, jeden dla pracownika i jeden dla klienta. Ten dla pracownika zostaje "zablokowany" po uruchomieniu skryptu php.

Z góry dziękuję.

Odpowiedz

19

OK. Znalazłem rozwiązanie mojego wcześniejszego problemu. Wiąże się to z wykorzystaniem Supervisord do deamonizacji pracownika (-ów) mechaników.

Oto jak zainstalować Supervisord

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

Oto jak go skonfigurować (najpierw uzyskać skrypt startowy z here i zapisać go do /etc/init.d/supervisord), a następnie wykonaj następujące czynności:

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

następnie musisz zaktualizować plik supervisor.conf, aby poinformować supervisora, które polecenie chcesz uruchomić jako demona (oczywiście, to byłby twój pracownik mechanik). Poniżej znajduje się przykład tego, co możesz dodać do pliku supervisord.conf, musisz zaktualizować go do swojej konkretnej sytuacji.

[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 

Kiedy skończysz, a następnie rozpocznij supervisord tj /etc/init.d/supervisord start.

Gdy to zrobisz, twój pracownik Gearman jest teraz aktywny i możesz teraz uruchomić swojego klienta dla kierownika za pomocą wiersza poleceń lub przeglądarki.

Mam nadzieję, że to pomoże.

+2

'apt-get install supervisor' i tworzenie'/etc/supervisor/conf.d/gearman.conf' za pomocą '[program: gearman]' oraz 'command =/usr/bin/php php_gearman_worker.php' było wszystkim, co było mi potrzebne. –

5

Dla pracowników tła można użyć GearmanManager Brian Księżyca https://github.com/brianlmoon/GearmanManager

+0

Wielkie dzięki, ale znalazłem inny sposób bardziej realne korzystając Supervisord. –

+0

Monitor GearMan i menadżer Gearman powinny wystarczyć. https://github.com/yugene/Gearman-Monitor – rjha94

5

Inną opcją jest użycie screen umieścić zadanie pracownika do jednorodzinnego skorupy:

screen -d -m php worker.php 
+0

wielkie dzięki. – pregmatch