GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

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

Descripción

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

Utilizado para solicitar el estado al servidor Gearman, que llamará al retorno de estado especificado (mediante GearmanClient::setStatusCallback()).

Parámetros

job_handle

El descriptor para la tarea cuyo estado se desea obtener

context

Los datos a pasar al retorno de estado, generalmente una referencia a un array o a un objeto

Valores devueltos

Un objeto GearmanTask o false en caso de error.

Ejemplos

Ejemplo #1 Supervisar la finalización de múltiples tareas en segundo plano

Un retraso artificial se introduce en el agente de este ejemplo para simular un proceso largo. Solo se lanza un agente en este ejemplo.

<?php

/* crea nuestro objeto */
$gmclient= new GearmanClient();

/* añade el servidor por omisión */
$gmclient->addServer();

/* lanza una tarea en segundo plano y guarda los descriptores */
$handles = array();
$handles[0] = $gmclient->doBackground("inverse", "¡Hola mundo!");
$handles[1] = $gmclient->doBackground("inverse", "!ednom el ruojnoB");

$gmclient->setStatusCallback("inverse_estado");

/* Consulta al servidor para ver cuándo las tareas en segundo plano terminan; */
/* un método mejor consiste en llamar a los retornos de evento */
do
{
/* Utiliza la variable de contexto para saber cuántas tareas se han completado */
$done = 0;
$gmclient->addTaskStatus($handles[0], $done);
$gmclient->addTaskStatus($handles[1], $done);
$gmclient->runTasks();
echo
"Completado: $done\n";
sleep(1);
}
while (
$done != 2);

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

?>

El resultado del ejemplo sería algo similar a:

Completado: 0
Completado: 0
Completado: 0
Completado: 0
Completado: 0
Completado: 0
Completado: 0
Completado: 0
Completado: 0
Completado: 0
Completado: 0
Completado: 0
Completado: 1
Completado: 1
Completado: 1
Completado: 1
Completado: 1
Completado: 1
Completado: 1
Completado: 1
Completado: 1
Completado: 1
Completado: 1
Completado: 1
Completado: 2

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top