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

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

「 设置Gearman客户端在任务完成时的回调函数 」


函数名称: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客户端连接。

请注意,该示例中的回调函数使用了匿名函数,您也可以使用其他可调用的函数作为回调函数。

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