(PECL gearman >= 0.5.0)
GearmanClient::doStatus — 获取正在运行的任务的状态
此函数没有参数。
一个数组,表示作为分数给出的完成百分比,其中第一个元素是分子,第二个元素是分母。
示例 #1 获取长时间运行作业的状态
此示例中的工作者在处理要反转的字符串时添加了人工延迟。在每次延迟后,它调用 GearmanJob::status(),然后客户端拾取。
<?php
echo "Starting\n";
# 创建我们的客户端对象。
$gmclient= new GearmanClient();
# 添加默认服务器 (localhost)。
$gmclient->addServer();
echo "Sending job\n";
# 发送反转作业
do
{
$result = $gmclient->doNormal("reverse", "Hello!");
# 检查各种返回数据包和错误。
switch($gmclient->returnCode())
{
case GEARMAN_WORK_DATA:
break;
case GEARMAN_WORK_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