我在我的服务器上安装了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测试的活动迹象,而是记录了我尝试过的所有先前的例子。
如何修复此错误?感谢。
答案 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替换。