如果您提供多个服务器,它将始终采用最后一个服务器,除非该服务器不可用。这是 gearman 的工作方式(通常这不是一个坏主意)。
如果您想将作业分散到多个服务器上,您可能需要打乱服务器列表。
(PECL gearman >= 0.5.0)
GearmanClient::addServers — 向客户端添加作业服务器列表
添加可以用来运行任务的作业服务器列表。此处不会发生套接字 I/O;服务器只是简单地添加到服务器的完整列表中。
servers
服务器的逗号分隔列表,每个服务器都采用 'host:port
' 的格式指定。
示例 #1 添加两个作业服务器
<?php
# 创建客户端对象。
$gmclient= new GearmanClient();
# 添加多个作业服务器,第一个服务器使用默认的 4730 端口
$gmclient->addServers("10.0.0.1,10.0.0.2:7003");
?>
如果您提供多个服务器,它将始终采用最后一个服务器,除非该服务器不可用。这是 gearman 的工作方式(通常这不是一个坏主意)。
如果您想将作业分散到多个服务器上,您可能需要打乱服务器列表。
实际上,当任何服务器关闭或无法访问时,客户端都会抛出异常,而不是像
致命错误:捕获到异常“GearmanException”,消息为“无法设置异常选项”,位于 /var/www/ipao/Api/Q2/Test/gm-test.php:11
堆栈跟踪
#0 /var/www/ipao/Api/Q2/Test/gm-test.php(11): GearmanClient->addServer('xxx.xxx.xxx.xxx')
#1 {main}