只有一名齿轮工人正在找工作

时间:2011-07-29 19:24:34

标签: php gearman

我有一个用PHP编写的齿轮工人,他回应了一些东西并且睡了几秒钟。我启动了这个工人的两个实例,当我现在运行齿轮工几次做这项工作时,只有一个工人(我开始的最后一个工作)被执行 - 从来没有另一个,尽管客户必须等到这名工人已经完成了他的工作。我在这里做错了什么,或者是齿轮手应该如何说出来的想法?

# cat ./testworker.php 
<?php

$Worker = new \GearmanWorker;
$Worker->addServers('127.0.0.1:4730');
$Worker->addFunction('test', 'work');
while ($Worker->work() || $Worker->returnCode() == GEARMAN_TIMEOUT) {
        if ($Worker->returnCode() != GEARMAN_SUCCESS)
                break;
}

function work()
{
        echo getmypid();
        sleep(1);
}

然后我使用命令

在两个控制台中启动了worker
# php ./testworker.php

然后我跑了几个齿轮工作几次:

# gearman -f test -s

可能是因为我需要齿轮手守护程序的-t选项吗?我正在研究OS-X。

# ps ax | grep gearman
4128  ??  Ss     0:00.02 /opt/local/bin/daemondo --label=gearmand --start-cmd /opt/local/sbin/gearman
4129  ??  S      0:00.04 /opt/local/sbin/gearmand -vv --port=4730 -u root --pid-file=/opt/local/var/r
4250  p5  S+     0:00.01 grep gearman

BTW:如何更改守护进程控制进程中的任何选项?我更改了/opt/local/etc/LaunchDaemons/org.macports.gearmand/org.macports.gearmand.plist但我想我需要执行一个重新读取列表的commans。

0 个答案:

没有答案