English | 简体中文 | 繁體中文
查询

GearmanClient::setStatusCallback()函数—用法及示例

「 设置状态回调函数,该回调函数将在 Gearman 服务器发送状态更新时被调用 」


函数名:GearmanClient::setStatusCallback()

适用版本:GearmanClient 类在 PHP 5 >= 5.3.0, PECL gearman >= 0.5.0 版本中可用。

用法: GearmanClient::setStatusCallback() 方法用于设置状态回调函数,该回调函数将在 Gearman 服务器发送状态更新时被调用。

语法:

public bool GearmanClient::setStatusCallback ( callable $callback )

参数:

  • $callback:必需,回调函数,当状态更新时会被调用。回调函数的格式为 function callback (GearmanTask $task) {}。其中,$task 是一个 GearmanTask 对象,表示当前任务的状态信息。

返回值:

  • 成功时返回 true,失败时返回 false

示例:

function statusCallback(GearmanTask $task) {
    $jobHandle = $task->jobHandle();
    $taskNumerator = $task->taskNumerator();
    $taskDenominator = $task->taskDenominator();
    
    echo "Job handle: $jobHandle, Completed: $taskNumerator/$taskDenominator\n";
}

$client = new GearmanClient();
$client->addServer('localhost');
$client->setStatusCallback('statusCallback');

$task = $client->doBackground('task_name', 'task_data');
// 执行其他任务

while ($client->runTasks()) {
    // 等待所有任务执行完毕
}

$client->clearCallbacks();

在上面的示例中,我们创建了一个 GearmanClient 对象,并添加了一个 Gearman 服务器。然后,我们设置了 setStatusCallback() 方法的回调函数为 statusCallback()。在回调函数中,我们获取了任务的句柄、已完成的任务数量和总任务数量,并将其输出。最后,我们执行了一个后台任务并等待所有任务执行完毕。

补充纠错
热门PHP函数
分享链接