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 →