PHP 8.4.0 RC4 available for testing

GearmanWorker::addServer

(PECL gearman >= 0.5.0)

GearmanWorker::addServerAdd a job server

Descrizione

public GearmanWorker::addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool

Adds a job server to this worker. This goes into a list of servers than can be used to run jobs. No socket I/O happens here.

Elenco dei parametri

host

L'hostname del job server.

port

La porta del job server.

Valori restituiti

Restituisce true in caso di successo, false in caso di fallimento.

Esempi

Example #1 Add alternate Gearman servers

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

Vedere anche:

add a note

User Contributed Notes 7 notes

up
5
magge
12 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
1
liv_romania at yahoo dot com
9 years 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
2
anubhav dot jha at gmail dot com
7 years 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
mike at eastghost dot com
7 years ago
PHP Fatal error: Uncaught exception 'GearmanException' with message 'Failed to set exception option'

also indicates the gearmand daemon is not running.
up
1
gabe dot spradlin at gmail dot com
11 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
allevo
7 years 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
-3
617137379 at qq dot com
11 years ago
No socket I/O happens in addserver.
To Top