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
11 年前
如果您突然开始收到

PHP 致命错误:未捕获的异常“GearmanException”,消息为“无法设置异常选项”在

...在您的 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 年前
我在添加服务器时收到以下消息:未捕获的异常“GearmanException”,消息为“无法设置异常选项”在 <<文件名>>:<<行号>>
在 CentOS 6.5 上

通过以下步骤修复
yum install gearmand
/etc/init.d/gearmand start
1
mike at eastghost dot com
7 年前
PHP 致命错误:未捕获的异常“GearmanException”,消息为“无法设置异常选项”

也表示 gearmand 守护进程未运行。
1
gabe dot spradlin at gmail dot com
10 年前
手册中指出,成功时您将获得 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
10 年前
addserver 中不会发生套接字 I/O。
To Top