我在PHP 5.3.8中使用Ubuntu Natty。我刚让Gearman在服务器上工作。

我用PHP手册中的一些脚本进行了一些测试,一切正常。

但是,我想知道是否有一种方法可以在后台运行该工作程序,并对其进行监视,以便在我转为多工情况时,可以跟踪我有多少个工作人员在职的。

通常,我将不得不打开两个终端,一个用于工作人员,一个用于客户。在执行php脚本后,工作人员的一个将“卡住”。

提前致谢。

最佳答案

好的。我找到了解决我以前的问题的方法。它涉及使用Supervisord来消灭齿轮工。

这是安装Supervisord的方法

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

这是配置它的方法(首先从here获取一个初始化脚本并将其保存到/etc/init.d/supervisord),然后执行以下操作:
chmod +x /etc/init.d/supervisord
update-rc.d -f supervisord defaults

然后,您需要更新您的supervisor.conf文件,以告知supervisor您想作为守护程序运行哪个命令(当然,这将是您的齿轮工)。以下只是添加到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

完成后,请启动受监管的用户,即/etc/init.d/supervisord start

完成此操作后,您的Gearman工作人员现在处于事件状态,现在可以通过命令行或浏览器运行Gearman客户端。

我希望这有帮助。

关于php - 在后台运行Gearman worker ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8217848/

10-11 03:33
查看更多