Niedawno zainteresowałem się usługą Gearman i jedynej rzeczy której mi brakowało to jakiegoś łatwego mechanizmu zarządzającego workerami. Ale jak zwykle okazało się że inni mieli już ten problem i odpowiednie narzędzie istnieje - mowa o GearmanManagerze.

Instalacja GearmanManagera

Aby zainstalować GeramanManagera na serwerze gdzie już mamy Gearmana trzeba wykonać kilka kroków (wcześniej powinniśmy też zainstalować moduł gearmana do php’a):

apt-get install git -y
git clone https://github.com/brianlmoon/GearmanManager.git
cd GearmanManager/install
chmod +x install.sh
./install.sh

Detecting linux distro as redhat- or debian-compatible
Where is your php executable? (usually /usr/bin)
/usr/bin
Which PHP library to use, pecl/gearman or PEAR::Net_Gearman?
1) pecl
2) pear
#? 1   
Installing to /usr/local/share/gearman-manager
Installing executable to /usr/local/bin/gearman-manager
Installing configs to /etc/gearman-manager
Installing init script to /etc/init.d/gearman-manager

Install ok!  Run /etc/init.d/gearman-manager to start and stop
Worker scripts can be installed in /etc/gearman-manager/workers, configuration can be edited in /etc/gearman-manager/config.ini

Mamy działającego GearmanManagera. Zalecam przyglądnięcie się plikowi config-advanced.ini bo jest tam kilka opcji, które warto dodatkowo ustawić.

Sprawdzenie działania Geramana i GearmanManagera

Przykład workera można znaleźć tutaj http://brian.moonspot.net/GearmanManagerexternal link . Po pobraniu go i zapisaniu w pliku /etc/gearman-manager/workers/fetch_url.php możemy ręcznie zakolejkować zadanie dla Geramana:

gearman -f fetch_url -- http://google.pl/robots.txt

Źródło:
https://github.com/brianlmoon/GearmanManagerexternal link
http://brian.moonspot.net/GearmanManagerexternal link