函数名:GearmanClient::addTaskStatus()
适用版本:GearmanClient 0.6.0 及以上版本
用法: GearmanClient::addTaskStatus(string $job_handle, int $percent_complete)
参数:
- $job_handle:任务的唯一标识符,由Gearman服务器分配给任务
- $percent_complete:任务的完成百分比,取值范围为0到100
返回值:
- 成功时返回true,失败时返回false
示例:
<?php
// 创建Gearman客户端对象
$client = new GearmanClient();
// 向Gearman服务器添加任务状态更新请求
$client->addTaskStatus('unique_job_handle', 50);
// 提交任务到Gearman服务器
$client->runTasks();
// 检查任务状态
$status = $client->returnCode();
if ($status == GEARMAN_SUCCESS) {
echo "任务状态更新成功\n";
} else {
echo "任务状态更新失败\n";
}
?>
说明: GearmanClient::addTaskStatus() 函数用于向Gearman服务器添加任务状态更新请求。该函数用于更新任务的完成百分比,以便在任务执行过程中通知客户端任务的进度。在调用该函数之前,必须先创建GearmanClient对象,并通过addTask()或addTaskLow()方法添加任务。最后,通过调用runTasks()方法将任务提交给Gearman服务器进行处理。
注意事项:
- 在调用addTaskStatus()函数之前,必须先调用addTask()或addTaskLow()方法添加任务。
- 调用runTasks()方法后,任务才会被提交到Gearman服务器进行处理。
- 如果任务状态更新成功,可以通过returnCode()方法获取返回状态码,判断任务状态更新是否成功。
- 任务状态更新请求只能发送给正在执行的任务,不能发送给已完成或已失败的任务。
- 任务状态更新请求可以多次发送,以更新任务的完成百分比。
- 如果任务状态更新失败,可能是由于任务不存在或已完成。
- 任务状态更新请求是异步的,无法保证立即生效,需要等待Gearman服务器处理请求。
- 任务状态更新请求的频率应适度,避免对Gearman服务器造成过大的压力。
- 该函数仅适用于GearmanClient类的实例对象,不适用于其他Gearman相关类。