©
本文档使用
php.cn手册 发布
(PECL gearman >= 0.5.0)
GearmanClient::doStatus — Get the status for the running task
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