GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatusAñade una tarea para obtener el estado

Descripción

publicGearmanClient::addTaskStatus(string$job_handle, string&$context = ?): GearmanTask

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()).

Parámetros

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.

Valores devueltos

Un objeto GearmanTask.

Ejemplos

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

Ver también

To Top