Gearman在php示例中抛出GEARMAN_COULD_NOT_CONNECT

时间:2013-02-07 11:03:49

标签: php gearman

我在我的服务器上安装了gearmand 1.1.5,并在启动服务器后尝试了安装提供的示例。它们的工作非常正确(echo示例有效,反向不能按预期工作,但不会产生任何错误)。

然后我使用pecl安装了php包装器。该版本是最后一个稳定版(1.1.1)。显然我添加了扩展到php.ini,我的php --info | grep gearman输出是:

gearman
gearman support => enabled
libgearman version => 1.1.5
PWD => /root/gearman-1.1.1/examples
OLDPWD => /root/gearman-1.1.1
_SERVER["PWD"] => /root/gearman-1.1.1/examples
_SERVER["OLDPWD"] => /root/gearman-1.1.1

然后我尝试了pecl包中的echo示例,工作者正确启动:

[~/gearman-1.1.1/examples]# php reverse_worker.php 
Starting
Waiting for job...

客户端反而给出了以下错误:

[~/gearman-1.1.1/examples]# php reverse_client.php 
Starting
Sending job
PHP Warning:  GearmanClient::do(): send_packet(GEARMAN_COULD_NOT_CONNECT) Failed to send server-options packet -> libgearman/connection.cc:430 in /root/gearman-1.1.1/examples/reverse_client.php on line 26
PHP Stack trace:
PHP   1. {main}() /root/gearman-1.1.1/examples/reverse_client.php:0
PHP   2. GearmanClient->do() /root/gearman-1.1.1/examples/reverse_client.php:26

Warning: GearmanClient::do(): send_packet(GEARMAN_COULD_NOT_CONNECT) Failed to send server-options packet -> libgearman/connection.cc:430 in /root/gearman-1.1.1/examples/reverse_client.php on line 26

Call Stack:
    0.0001     228408   1. {main}() /root/gearman-1.1.1/examples/reverse_client.php:0
    0.0003     229552   2. GearmanClient->do() /root/gearman-1.1.1/examples/reverse_client.php:26

RET: 26

在gearman守护程序的日志中,没有这个php测试的活动迹象,而是记录了我尝试过的所有先前的例子。

如何修复此错误?感谢。

2 个答案:

答案 0 :(得分:4)

你应该总是使用addServer("127.0.0.1", 4730),而不是addServer(),尽管php文档说的是。

答案 1 :(得分:0)

如果你使用过这样的东西

  

$ client-> addServers(' 127.0.0.1',4730);

  

$客户端 - > addServers();

仍然没有用,然后使用这样的东西

  

<强> $客户端 - &GT; addServers(&#39; 127.0.0.1:4730&#39);

PS - 我使用过localhost IP,可以用实际主机IP替换。