©
This document uses PHP Chinese website manual Release
(PECL gearman >= 0.5.0)
GearmanClient::addServers — Add a list of job servers to the client
$servers
= 127.0.0.1:4730
] )Adds a list of job servers that can be used to run a task. No socket I/O happens here; the servers are simply added to the full list of servers.
servers
A comma-separated list of servers, each server specified in the format 'host:port'.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 Add two job servers
<?php
# Create our client object.
$gmclient = new GearmanClient ();
# Add multiple job servers, the first on the default 4730 port
$gmclient -> addServers ( "10.0.0.1,10.0.0.2:7003" );
?>
[#1] littlexiang521 at gmail dot com [2014-02-21 08:00:52]
actually client side will throw an exception when any of the servers is down or unreachable instead like
Fatal error: Uncaught exception 'GearmanException' with message 'Failed to set exception option' in /var/www/ipao/Api/Q2/Test/gm-test.php:11
Stack trace:
#0 /var/www/ipao/Api/Q2/Test/gm-test.php(11): GearmanClient->addServer('xxx.xxx.xxx.xxx')
#1 {main}
[#2] jachimcoudenys at gmail dot com [2013-07-30 08:14:50]
If you supply more than one server, it will always take the last server, unless it is unavailable. This is the way gearman works (and it is generally not a bad idea).
If you want to spread the jobs over multiple servers, you might want to shuffle the list of servers.