(PECL gearman >= 0.5.0)
GearmanClient::addTaskStatus — Añade una tarea para obtener el estado
Usado para pedir información de estado del servidor Gearman que llamará a la función de retorno especificada (usando el método GearmanClient::setStatusCallback()).
job_handle
Manejador de la tarea a obtener el estado
context
Datos a pasar en la llamada a la función de retorno para el estado, generalmente una referencia a un array u objeto.
Un objeto GearmanTask.
Ejemplo #1 Monitor para el estado de finalización de múltiples tareas en segundo plano
Se introduce un retardo artificial en el trabajador del ejemplo para simular un proceso de larga duración. Únicamente se ejecuta un trabajador para este ejemplo.
<?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++;
}
?>
El resultado del ejemplo sería algo similar a:
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