首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

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

描述

代码语言:javascript
复制
public array GearmanClient::doStatus ( void )

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

参数

该功能没有参数。

返回值

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

例子

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

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

代码语言:javascript
复制
<?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";

?>

上面的例子会输出:

代码语言:javascript
复制
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 →

扫码关注腾讯云开发者

领取腾讯云代金券