3
iam은 php-gearman에 초보자이고 몇 가지 유용한 자습서 덕분에 몇 가지 예를 시도했습니다. 위의 기본 코드와 같습니다.데이터 가져 오기 성공적인 작업자 실행 후 gearman
클라이언트 측이 코드는 나에게 작업 상태를 가져옵니다
<?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;
}
?>
<?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);
}
?>
서버 측.
GermanClient :: doBackground를 사용하는 동안 성공한 작업자 실행 후 반환 된 데이터를 가져 오는 방법은 무엇입니까?