PHP
Gearman

GearmanClient::doStatus

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient :: doStatus - 获取正在运行的任务的状态

描述

public array GearmanClient::doStatus ( void )

返回正在运行的任务的状态。这应该在重复的GearmanClient :: doNormal()调用之间使用。

参数

该功能没有参数。

返回值

此数组表示以分数形式给出的完成百分比,第一个元素为分子,第二个元素为denomintor。

例子

示例#1获取长时间运行的作业的状态

本例中的工作人员在处理要翻转的字符串期间添加了人为延迟。在每次延迟之后,它会调用客户端接收到的GearmanJob :: status()。

<?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() - 运行一个任务并返回一个结果

  • GearmanJob :: status() - 发送状态(不建议使用)

← GearmanClient::doNormal

GearmanClient::echo →