GearmanWorker::work()

启动 Gearman worker 进程并开始监听任务队列,当有任务到达时,worker 将执行相应的任务处理函数

首字母:G

函数名:GearmanWorker::work()

适用版本:GearmanWorker::work() 函数在 PHP 5 >= 5.3.0 及 PHP 7 中可用。

用法:GearmanWorker::work() 函数用于启动 Gearman worker 进程并开始监听任务队列,当有任务到达时,worker 将执行相应的任务处理函数。

语法:

public bool GearmanWorker::work ([ callable $callback [, int &$timeout ]] )

参数:

  • callback(可选):一个可调用的函数,用于处理任务。如果没有传递此参数,worker 将使用默认任务处理函数。
  • timeout(可选):一个整数,表示 worker 在没有任务时的超时时间(以毫秒为单位)。默认值为无限超时。

返回值:

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

示例:

addServer('127.0.0.1', 4730);
// 设置任务处理函数
$worker->addFunction('reverse_string', 'reverseString');
// 定义任务处理函数
function reverseString($job)
{
 $workload = $job->workload();
 $result = strrev($workload);
 // 处理完任务后,返回处理结果
 return $result;
}
// 启动 worker 进程并监听任务队列
while ($worker->work()) {
 if ($worker->returnCode() != GEARMAN_SUCCESS) {
 echo "Worker failed: " . $worker->returnCode() . "\n";
 break;
 }
}
?>

在上面的示例中,我们创建了一个 Gearman worker 对象,并添加了 Gearman 服务器的连接信息。然后,我们使用 addFunction() 方法将任务处理函数 reverseString() 与任务名称 reverse_string 关联起来。在 reverseString() 函数中,我们将传入的任务载荷进行反转,并返回处理结果。最后,通过调用 work() 方法启动 worker 进程,并开始监听任务队列。当有任务到达时,worker 将自动调用相应的处理函数进行处理。

同首字母函数