函数名:GearmanWorker::work()
适用版本:GearmanWorker::work() 函数在 PHP 5 >= 5.3.0 及 PHP 7 中可用。
用法:GearmanWorker::work() 函数用于启动 Gearman worker 进程并开始监听任务队列,当有任务到达时,worker 将执行相应的任务处理函数。
语法:
public bool GearmanWorker::work ([ callable $callback [, int &$timeout ]] )
参数:
返回值:
示例:
<?php
// 创建 Gearman worker 对象
$worker = new GearmanWorker();
// 添加 Gearman 服务器
$worker->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 将自动调用相应的处理函数进行处理。