Получить данные после успешного выполнения работника

Я новичок в php-gearman, и с помощью некоторых полезных руководств я опробовал несколько примеров. Как приведенный выше базовый код.

Сторона клиента

<?php
# Create our client object.
$client= new GearmanClient();

# Add default server (localhost).
$client->addServer("localhost", 4730);

echo "Sending job\n";

# Send reverse job
$result = $client->doBackground("reverse", "Hello!");
$stat = $client->jobStatus($result);
$done = false;

$client->setWorkloadCallback('test');

function test($data)
{
        echo $data;
}

while(!$done)
{
        if(!$stat[0])
        {
                $done = true;
                echo $result;
        }
        echo "status".json_encode($stat)."/n";
        $stat = $client->jobStatus($result);
}
?>

Сторона сервера

<?php
# Create our worker object.
$worker= new GearmanWorker();

# Add default server (localhost).
$worker->addServer("localhost", 4730);

# Register function "reverse" with the server.
$worker->addFunction("reverse", "reverse_fn");

while (1)
{
  print "Waiting for job...\n";

  $ret= $worker->work();
  if ($worker->returnCode() != GEARMAN_SUCCESS)
    break;
}

function reverse_fn($job)
{
  $workload= $job->workload();
  echo "Received job: " . $job->handle() . "\n";
  echo "Workload: $workload\n";
  $result= strrev($workload);
  echo "Result: $result\n";
  return $result;
}
?>

Этот код дает мне статус работы.

Мой вопрос: при использовании GermanClient::doBackground как получить возвращенные данные после успешного выполнения рабочего?


person PRASANTH    schedule 30.09.2013    source источник


Ответы (1)


Хотя этот поток является древним, некоторые могут использовать какую-то базу данных с дескриптором задания в качестве столбца. После этого вы можете запросить дескриптор задания.

person Jan    schedule 19.08.2015