GearmanClient::jobStatus

gearman_job_status

(PECL gearman >= 0.5.0)

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

Descripción

Estilo orientado a objetos (método):

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

Obtiene el estado de un trabajo en segundo plano para un manejador de trabajo dado. La información de estado estecifica si el trabajo es conocido, si está ejecutandose actualmente y el porcentaje completado.

Parámetros

job_handle

El manipulador de la tarea asignado por el servidor Gearman

Valores devueltos

Un array que contiene la información del estado para el trabajo correspondiente al manejador de trabajo indicado. El primer elemento del array es un boolean indicando si el trabajo es conocido, el segundo es un boolean indicando si el trabajo se está ejecutando y el tercer y cuarto elemento corresponden al numerador y denonimador del porcenaje de trabajo completado, respectivamente.

Ejemplos

Ejemplo #1 Monitorización del estado de un trabajo ejecutandose en segundo plano

<?php

/* Creamos el objeto */
$gmclient= new GearmanClient();

/* Añadimos el servidor por defecto */
$gmclient->addServer();

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

if (
$gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo 
"bad return code\n";
  exit;
}

$done false;
do
{
   
sleep(3);
   
$stat $gmclient->jobStatus($job_handle);
   if (!
$stat[0]) // the job is known so it is not done
      
$done true;
   echo 
"Running: " . ($stat[1] ? "true" "false") . ", numerator: " $stat[2] . ", denomintor: " $stat[3] . "\n";
}
while(!
$done);

echo 
"done!\n";

?>

El resultado del ejemplo sería algo similar a:

Running: true, numerator: 3, denomintor: 14
Running: true, numerator: 6, denomintor: 14
Running: true, numerator: 9, denomintor: 14
Running: true, numerator: 12, denomintor: 14
Running: false, numerator: 0, denomintor: 0
done!

Ver también