The 5th Annual China PHP Conference

GearmanWorker::addServer

(PECL gearman >= 0.5.0)

GearmanWorker::addServerAjoute un serveur de travaux

Description

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

Ajoute un serveur de travaux à cet agent. Il sera ajouter à une liste de serveurs à utiliser pour exécuter les travaux. Aucun socket I/O n'intervient ici.

Liste de paramètres

host

Le nom d'hôte du serveur de travaux.

port

Le port du serveur de travaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de serveurs Gearman

<?php
$worker
= new GearmanWorker(); 
$worker->addServer("10.0.0.1"); 
$worker->addServer("10.0.0.2"7003);
?>

Voir aussi

add a note add a note

User Contributed Notes 7 notes

up
3
magge
4 years ago
If you suddenly start getting a:

PHP Fatal error:  Uncaught exception 'GearmanException' with message 'Failed to set exception option' in

...on your GearmanWorker::work() calls, I was able to fix this by specifying values to GearmanWorker::addServer(), even if they are the same as the documented default values.

Crashes:

<?php
$gmw
= new GearmanWorker();
$gmw->addServer();
$gmw->work();
?>

Works:

<?php
$gmw
= new GearmanWorker();
$gmw->addServer("127.0.0.1", 4730);
$gmw->work();
?>

Go figure. :)
up
2
liv_romania at yahoo dot com
1 year ago
To properly test the server added you could use the following code:

<?php
// create the worker
$worker= new GearmanWorker();

// add the  job server (bad host/port)
$worker->addServer('127.0.0.2', 4731);

// define a variable to hold application data
$count = 0;

// add the reverse function
$worker->addFunction('reverse', 'my_reverse_function', $count);

// test job server response
if (!@$worker->echo('test data')) {
    die(
$worker->error());
}

// start the worker listening for job submissions
while ($worker->work());

function
my_reverse_function($job, &$count)
{
   
$count++;

    return
$count . ': ' . strrev($job->workload()) . "\n";
}
?>
up
1
anubhav dot jha at gmail dot com
21 days ago
I was receving following message on add server Uncaught exception 'GearmanException' with message 'Failed to set exception option' in <<filename>>:<<linenumber >>
was on centos 6.5

fixed by following steps:
yum install gearmand
/etc/init.d/gearmand start
up
1
gabe dot spradlin at gmail dot com
3 years ago
The manual states that you get a TRUE on success and FALSE on failure. When I have attempted to connect to a server that is powered off I still get TRUE. The return from returnCode() is 0 which is the same as the returnCode() from a successful connection.

I have not yet found a way around this.
up
0
mike at eastghost dot com
3 months ago
PHP Fatal error:  Uncaught exception 'GearmanException' with message 'Failed to set exception option'

also indicates the gearmand daemon is not running.
up
-1
allevo
3 months ago
On Ubuntu (php7 php-gearman/xenial,now 2.0.2+1.1.2-1+deb.sury.org~xenial+1 amd64) this function throws a GearmanException.
Please use in try catch
up
-1
617137379 at qq dot com
3 years ago
No socket I/O happens in addserver.
To Top