函数名:GearmanWorker::returnCode()
适用版本:GearmanWorker类在PHP 5 >= 5.3.0, PECL gearman >= 0.5.0 版本中可用。
用法:GearmanWorker::returnCode() 函数用于获取上一次 Gearman 任务执行的返回码。
返回码是一个整数,代表了任务的执行状态。返回码的含义如下:
- GEARMAN_SUCCESS:任务成功完成。
- GEARMAN_IO_WAIT:等待 I/O 事件。
- GEARMAN_WORK_FAIL:任务执行失败。
- GEARMAN_WORK_EXCEPTION:任务执行时发生异常。
- GEARMAN_WORK_DATA:任务返回数据。
- GEARMAN_WORK_WARNING:任务执行时发出警告。
- GEARMAN_WORK_STATUS:任务执行状态更新。
示例:
<?php
$worker = new GearmanWorker();
$worker->addServer('127.0.0.1', 4730);
$worker->addFunction('reverse', function (GearmanJob $job) {
$workload = $job->workload();
$result = strrev($workload);
$job->sendData($result);
});
while ($worker->work()) {
if ($worker->returnCode() !== GEARMAN_SUCCESS) {
echo "Worker failed with return code: " . $worker->returnCode() . "\n";
break;
}
}
?>
在上面的示例中,我们创建了一个 GearmanWorker 对象,并添加了一个函数 reverse
。当有任务到达时,该函数会将任务的负载字符串颠倒并通过 $job->sendData()
返回结果。在 while
循环中,我们通过检查 $worker->returnCode()
的返回值来判断工作进程是否正常运行。如果返回码不等于 GEARMAN_SUCCESS
,则表示任务执行失败,我们输出相应的错误信息并终止循环。