GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatusAdd a task to get status

説明

publicGearmanClient::addTaskStatus(string$job_handle, mixed$context = null): GearmanTask|false

Used to request status information from the Gearman server, which will call the specified status callback (set using GearmanClient::setStatusCallback()).

パラメータ

job_handle

The job handle for the task to get status for

context

Data to be passed to the status callback, generally a reference to an array or object

戻り値

A GearmanTask object or false on failure.

例1 Monitor completion of multiple background tasks

An artificial delay is introduced in the worker in this example to simulate a long running process. There is only one worker running for this example.

<?php


$gmclient= new GearmanClient();


$gmclient->addServer();


$handles = array();
$handles[0] = $gmclient->doBackground("reverse", "Hello World!");
$handles[1] = $gmclient->doBackground("reverse", "!dlroW olleH");

$gmclient->setStatusCallback("reverse_status");



do
{

$done = 0;
$gmclient->addTaskStatus($handles[0], &$done);
$gmclient->addTaskStatus($handles[1], &$done);
$gmclient->runTasks();
echo
"Done: $done\n";
sleep(1);
}
while (
$done != 2);

function
reverse_status($task, $done)
{
if (!
$task->isKnown())
$done++;
}

?>

上の例の出力は、 たとえば以下のようになります。

Done: 0 Done: 0 Done: 0 Done: 0 Done: 0 Done: 0 Done: 0 Done: 0 Done: 0 Done: 0 Done: 0 Done: 0 Done: 1 Done: 1 Done: 1 Done: 1 Done: 1 Done: 1 Done: 1 Done: 1 Done: 1 Done: 1 Done: 1 Done: 1 Done: 2

参考

To Top