Gearman在php示例中抛出Gearman_COULD_NOT_CONNECT



我在服务器上安装了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测试没有任何活动迹象,而它记录了我以前尝试过的所有示例。

如何修复此错误?谢谢

不管php文档怎么说,您应该始终使用addServer("127.0.0.1", 4730),而不是addServer()

如果您使用了类似的东西

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

$client->addServers();

但它仍然不起作用,然后使用类似于的东西

$client->addServers('27.0.0.1:4730')

PS-我使用了localhost IP,这可以用实际的主机IP代替。

相关内容

  • 没有找到相关文章

最新更新