GearmanClient::jobStatus

gearman_job_status

(PECL gearman >= 0.5.0)

GearmanClient::jobStatus -- gearman_job_statusRecupera el estado de un trabajo en segundo plano

Descripción

Estilo orientado a objetos (método) :

public GearmanClient::jobStatus(string $job_handle): array

Recupera el estado de un trabajo en segundo plano para el gestor de trabajos proporcionado. Las informaciones de estado especifican si el trabajo es conocido, si el trabajo está actualmente en ejecución, así como el porcentaje de realización.

Parámetros

job_handle

El manipulador de la tarea asignado por el servidor Gearman

Valores devueltos

Un array que contiene las informaciones de estado para el trabajo correspondiente al gestor de trabajos proporcionado. El primer elemento es un bool indicando si el trabajo es conocido, el segundo es un bool indicando si el trabajo está en ejecución, el tercero y el cuarto corresponden al numerador y denominador del porcentaje de realización.

Ejemplos

Ejemplo #1 Supervisa el estado de un trabajo en segundo plano que tarda en ejecutarse

<?php

/* Crea un cliente */
$gmclient= new GearmanClient();

/* Añade un servidor por defecto */
$gmclient->addServer();

/* Ejecuta el cliente */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if (
$gmclient->returnCode() != GEARMAN_SUCCESS)
{
echo
"Código de retorno incorrecto\n";
exit;
}

$done = false;
do
{
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!
$stat[0]) // el trabajo es conocido, significando que no ha terminado
$done = true;
echo
"Ejecución : " . ($stat[1] ? "true" : "false") . ", numerador : " . $stat[2] . ", denominador : " . $stat[3] . "\n";
}
while(!
$done);

echo
"hecho !\n";

?>

El resultado del ejemplo sería algo similar a:

Ejecución : true, numerador : 3, denominador : 14
Ejecución : true, numerador : 6, denominador : 14
Ejecución : true, numerador : 9, denominador : 14
Ejecución : true, numerador : 12, denominador : 14
Ejecución : false, numerador : 0, denominador : 0
hecho !

Ver también

add a note

User Contributed Notes 2 notes

up
13
bot at boxconnect dot org
9 years ago
The example above reads:
if (!$stat[0]) // the job is known so it is not done

I think the comment is wrong, it should read "the job is unknown, so it is done".
Regards,
Jan
up
-2
richard@anon
8 years ago
@Jan

if (!$stat[0]) // the job is known so it is not done

I believe to be correct. I read it as, if $stat[0] returns anything but false, the job is currently running, so we are not done. However, if we cannot find $stat[0] (ie: the job handle no longer exists) then the job is done.

--Richard
To Top