文字

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatusGet the status for the running task

说明

public array GearmanClient::doStatus ( void )

Returns the status for the running task. This should be used between repeated GearmanClient::doNormal() calls.

参数

此函数没有参数。

返回值

An array representing the percentage completion given as a fraction, with the first element the numerator and the second element the denomintor.

范例

Example #1 Get the status of a long running job

The worker in this example has an artificial delay added during processing of the string to be reversed. After each delay it calls GearmanJob::status() which the client then picks up.

<?php

echo  "Starting\n" ;

# Create our client object.
$gmclient = new  GearmanClient ();

# Add default server (localhost).
$gmclient -> addServer ();

echo 
"Sending job\n" ;

# Send reverse job
do
{
  
$result  $gmclient -> doNormal ( "reverse" "Hello!" );

  
# Check for various return packets and errors.
  
switch( $gmclient -> returnCode ())
  {
    case 
GEARMAN_WORK_DATA :
      break;
    case 
GEARMAN_WORK_STATUS :
      
# get the current job status
      
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" ;

?>

以上例程的输出类似于:

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

参见

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanJob::status() - Send status (deprecated)
上一篇: 下一篇: