PHP Conference Japan 2024

GearmanWorker::addServer

(PECL gearman >= 0.5.0)

GearmanWorker::addServer添加作业服务器

描述

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

将作业服务器添加到此工作程序。这将进入可用于运行作业的服务器列表。此处不会发生套接字 I/O。

参数

host

作业服务器主机名。

port

作业服务器端口。

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 添加备用 Gearman 服务器

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

参见

添加注释

用户贡献的注释 7 条注释

5
magge
12 年前
如果您突然开始收到

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

...在您的 GearmanWorker::work() 调用中,我能够通过为 GearmanWorker::addServer() 指定值来解决此问题,即使它们与记录的默认值相同。

崩溃

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

工作

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

去弄清楚。 :)
1
liv_romania at yahoo dot com
9 年前
要正确测试添加的服务器,您可以使用以下代码

<?php
// 创建工作程序
$worker= new GearmanWorker();

// 添加作业服务器(错误的主机/端口)
$worker->addServer('127.0.0.2', 4731);

// 定义一个变量来保存应用程序数据
$count = 0;

// 添加反向函数
$worker->addFunction('reverse', 'my_reverse_function', $count);

// 测试作业服务器响应
if (!@$worker->echo('test data')) {
die(
$worker->error());
}

// 启动工作程序监听作业提交
while ($worker->work());

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

return
$count . ': ' . strrev($job->workload()) . "\n";
}
?>
2
anubhav dot jha at gmail dot com
7 年前
我在添加服务器时收到以下消息 Uncaught exception 'GearmanException' with message 'Failed to set exception option' in <<filename>>:<<linenumber >>
在 CentOS 6.5 上

通过以下步骤修复
yum install gearmand
/etc/init.d/gearmand start
1
mike at eastghost dot com
7 年前
PHP Fatal error: Uncaught exception 'GearmanException' with message 'Failed to set exception option'

也表明 gearmand 守护进程未运行。
1
gabe dot spradlin at gmail dot com
11 年前
手册指出,成功时您将获得 TRUE,失败时将获得 FALSE。当我尝试连接到已关闭的服务器时,我仍然获得 TRUE。returnCode() 的返回值为 0,与成功连接的 returnCode() 相同。

我还没有找到解决方法。
0
allevo
7 年前
在 Ubuntu 上(php7 php-gearman/xenial,现在 2.0.2+1.1.2-1+deb.sury.org~xenial+1 amd64)此函数抛出 GearmanException。
请在 try catch 中使用
-3
617137379 at qq dot com
11 年前
addserver 中不会发生套接字 I/O。
To Top