Php/docs/gearmanclient.dostatus

来自菜鸟教程
跳转至:导航、​搜索

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatusGet the status for the running task


说明

public GearmanClient::doStatus ( ) : array

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.


<?phpecho "Starting\n";# Create our client object.$gmclient= new GearmanClient();# Add default server (localhost).$gmclient->addServer();echo "Sending job\n";# Send reverse jobdo{  $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

参见