6

是否可以从后台运行的齿轮工(使用 PHP)发回数据?

我知道我可以将状态(分子/分母)传递给客户端,但我需要“返回”数据。

背景是我需要调用不同服务器上的工作人员,如果他们没有响应,主脚本应该继续。所以我认为我必须在后台运行工人。但我需要他们的一些数据。

更新: 这似乎是不可能的。我想我要么将数据存储在共享数据库中,要么将其从远程服务器写入本地服务器,或者从远程服务器读取它,或者进行如下操作:

shell_exec('gearman -f getdata-192-168-200-1 > /my/path/ 2>&1 & echo $!');
4

1 回答 1

2

我认为您可以使用以下函数将数据从工作人员传递给客户端

GearmanJob::sendData($result);

通过在 $result 变量中提供您的数据,您还可以使用该函数在客户端中处理此数据

GearmanClient::setDataCallback("task_data");

function task_data($task)
{
    echo "DATA: " . $task->data() . "\n";
}

您可以获得更多信息

http://www.php.net/manual/en/gearmanclient.setdatacallback.php

于 2012-08-16T09:42:14.450 回答