GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatusObtiene el estado de la tarea en ejecución

Descripción

public GearmanClient::doStatus ( void ) : array

Retorna el estado para la tarea en ejecución. Debería usarse entre llamadas repetidas a GearmanClient::doNormal().

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Un array representando el porcentaje completado dado como una fracción, el primer elemento es el numerador y el segundo es el denominador.

Ejemplos

Ejemplo #1 Obtiene el estado de un trabajo en ejecución de larga duración

El trabajador de este ejemplo tiene un retardo artificial añadido durante el procesado del string a dar la vuelta. Tras cada retardo, se llama a GearmanJob::status() que el cliente recoge.

<?php

echo "Starting\n";

# Crea el objeto del cliente
$gmclient= new GearmanClient();

# Añade el servidor por defecto (localhost).
$gmclient->addServer();

echo 
"Sending job\n";

# Envía el trabajo "reverse"
do
{
  
$result $gmclient->doNormal("reverse""Hello!");

  
# Comprueba retorno de posibles paquetes y errores
  
switch($gmclient->returnCode())
  {
    case 
GEARMAN_WORK_DATA:
      break;
    case 
GEARMAN_WORK_STATUS:
      
# Obtiene el estado del trabajo actual
      
list($numerator$denominator)= $gmclient->doStatus();
      echo 
"Status: $numerator/$denominator complete\n";
      break;
    case 
GEARMAN_WORK_FAIL:
      echo 
"Failed\n";
      exit;
    case 
GEARMAN_SUCCESS:
      break;
    default:
      echo 
"RET: " $gmclient->returnCode() . "\n";
      exit;
  }
}
while(
$gmclient->returnCode() != GEARMAN_SUCCESS);

echo 
"Success: $result\n";

?>

El resultado del ejemplo sería algo similar a:

Starting
Sending job
Status: 1/6 complete
Status: 2/6 complete
Status: 3/6 complete
Status: 4/6 complete
Status: 5/6 complete
Status: 6/6 complete
Success: !olleH

Ver también