在后台运行齿轮工人

时间:2011-11-21 20:06:34

标签: php gearman

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

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

但是,我想知道是否有办法在后台运行工作人员,并监控它,以便当我转向多工人情况时,我可以跟踪我有多少工人已经开始工作了。

通常,我必须打开两个终端,一个用于工作人员,一个用于客户端。执行php脚本后,工作者将变为“卡住”状态。

提前致谢。

3 个答案:

答案 0 :(得分:19)

确定。我找到了解决我早期问题的方法。它涉及使用Supervisord对齿轮工人进行去法治。

以下是安装Supervisord的方法

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

以下是如何配置它(首先从here获取init脚本并将其保存到/etc/init.d/supervisord),然后执行以下操作:

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

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

我希望这会有所帮助。

答案 1 :(得分:5)

对于后台工作人员,您可以使用Brian Moon的GearmanManager https://github.com/brianlmoon/GearmanManager

答案 2 :(得分:5)

另一种选择是使用screen将worker任务放入分离的shell中:

screen -d -m php worker.php