php - Gearman:从后台 worker 向客户端发送数据

标签 php gearman

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

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

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

更新: 这似乎是不可能的。我想我要么将数据存储在共享数据库中,要么将数据从远程服务器写入本地服务器,要么从远程服务器读取数据,要么做这样的事情:

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

最佳答案

我认为您可以使用以下函数将数据从 worker 传递到客户端

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

关于php - Gearman:从后台 worker 向客户端发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7982450/

相关文章:

php - fetchAllAssociative()` 的替代方案并在 Doctrine 中执行

php - 使用函数操作数据

message-queue - Rabbitmq 或 Gearman - 选择作业队列

python - 运行基本 python-gearman 示例时出错

php - 具有多个服务器和 php worker 的 Gearman

php - 以简单的 PHP 形式显示来自两个或多个查询的不同数据

php - 如何从2个表中输出表格数据?

php - PGSQL - 排序列时出现类型转换错误

php - GearmanClient::do(): send_packet(GEARMAN_COULD_NOT_CONNECT) 在 php shell_exec 中失败