如果您提供多个服务器,它将始终使用最后一个服务器,除非它不可用。这是 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}