GearmanClient::addServer

(PECL gearman >= 0.5.0)

GearmanClient::addServerДобавить сервер задач для клиента

Описание

public bool GearmanClient::addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )

Добавляет сервер задач к списку серверов, которые могут использоваться для выполнения задачи. Никаких операций ввода-вывода c сокетом здесь не происходит. Сервер просто добавляется к списку.

Список параметров

host

Имя хоста сервера задач.

port

Порт сервера задач.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавление двух серверов задач

<?php

# Создаем клиентский объект
$gmclient= new GearmanClient();

# Добавляем два сервера задач, первый из них работает с портом 4730 по умолчанию
$gmclient->addServer("10.0.0.1"); 
$gmclient->addServer("10.0.0.2"7003);

?>

Смотрите также

Коментарии

Since a few versions the port parameter is not optional anymore. I have version 1.1.1 of pecl/gearman compiled with libgearman 1.1.5, and I'm getting the following error:

send_packet(GEARMAN_COULD_NOT_CONNECT) Failed to send server-options packet -> libgearman/connection.cc:430

This happens if you don't provide a port.

Just set the second parameter to 4730 and it is working again.
2013-04-08 14:22:00
http://php5.kiev.ua/manual/ru/gearmanclient.addserver.html
Автор:
The addServer and addServers are unforgiving when any of the addresses are down. I tried using exceptions, but it does not quite work. Can you provide a working example to handle a list of servers where one or more is not running.

Thanks
2013-10-29 20:19:03
http://php5.kiev.ua/manual/ru/gearmanclient.addserver.html
Автор:
Solution:
https://bugs.launchpad.net/gearmand/+bug/1118751
2015-03-02 13:18:25
http://php5.kiev.ua/manual/ru/gearmanclient.addserver.html
Adding to Amit's comments,  I found that if the first server in the list of servers is down, then there seems to be no way to handle such a condition.
2015-11-23 02:14:24
http://php5.kiev.ua/manual/ru/gearmanclient.addserver.html
Amit, kosta250

I found a workaround to avoid the dead servers and continue with rest alive. 

<?php

$servers 
= array(
  array(
'host' => '127.0.0.1''port' => '4730'), 
  array(
'host' => '127.0.0.1''port' => '4731'), 
  array(
'host' => '127.0.0.1''port' => '4732'), 
  array(
'host' => '127.0.0.2''port' => '4730')
);

$client= new GearmanClient();

foreach(
$servers as $server) {
 
$c = new GearmanClient();
 
$c->addServer($server['host'], $server['port']);

  if (@
$c->ping('ping')) {
   
$client->addServer($server['host'], $server['port']);
  }
}

?>
2015-12-04 16:59:23
http://php5.kiev.ua/manual/ru/gearmanclient.addserver.html

    Поддержать сайт на родительском проекте КГБ