文字

GearmanWorker::addServer

(PECL gearman >= 0.5.0)

GearmanWorker::addServerAdd a job server

说明

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

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.

参数

host

任务服务器主机名。

port

任务服务器端口号。

返回值

成功时返回 TRUE , 或者在失败时返回 FALSE

范例

Example #1 Add alternate Gearman servers

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

参见

  • GearmanWorker::addServers() - Add job servers

用户评论:

[#1] liv_romania at yahoo dot com [2015-07-18 15:14:57]

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";
}
?>

[#2] 617137379 at qq dot com [2013-10-30 08:10:18]

No socket I/O happens in addserver.

[#3] gabe dot spradlin at gmail dot com [2013-09-27 03:42:12]

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.

[#4] magge [2012-10-14 19:21:02]

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. :)

上一篇: 下一篇: