函数名称:GearmanClient::setCompleteCallback()
适用版本:Gearman PHP扩展版本 >= 0.5.0
函数用途:用于设置Gearman客户端在任务完成时的回调函数。
函数语法:bool GearmanClient::setCompleteCallback ( callable $callback )
参数说明:
- $callback: 必需,回调函数,用于在任务完成时调用。回调函数应该接受两个参数:任务的唯一标识符和任务结果的数据。
返回值:成功时返回true,失败时返回false。
示例代码:
<?php
// 创建Gearman客户端对象
$client = new GearmanClient();
// 添加Gearman服务器
$client->addServer('127.0.0.1', 4730);
// 设置任务完成时的回调函数
$client->setCompleteCallback(function (GearmanTask $task) {
$jobHandle = $task->jobHandle();
$resultData = $task->data();
// 处理任务完成后的逻辑
echo "任务完成,任务标识符:$jobHandle,结果数据:$resultData" . PHP_EOL;
});
// 向Gearman服务器提交后台任务
$client->doBackground('task_name', 'task_data');
// 等待所有任务完成
$client->wait();
// 关闭Gearman客户端连接
$client->close();
在上述示例中,我们首先创建了一个Gearman客户端对象,并添加了Gearman服务器。然后,我们使用setCompleteCallback()
函数设置了一个任务完成时的回调函数。回调函数接受一个GearmanTask对象作为参数,可以通过该对象获取任务的唯一标识符和任务结果的数据。在回调函数中,我们可以编写自定义的逻辑来处理任务完成后的操作。最后,我们使用doBackground()
函数提交一个后台任务,并通过wait()
函数等待所有任务完成。最后,我们关闭Gearman客户端连接。
请注意,该示例中的回调函数使用了匿名函数,您也可以使用其他可调用的函数作为回调函数。