GearmanWorker::wait
GearmanWorker::wait
(PECL gearman >= 0.6.0)
GearmanWorker::wait - 等待来自其中一个作业服务器的活动
描述
public bool GearmanWorker::wait ( void )
在非阻塞I/O模式下工作时,导致工作人员等待来自其中一个Gearman作业服务器的活动。失败时,遇到最后一个Gearman错误E_WARNING
。
参数
该函数没有参数。
返回值
成功时返回TRUE
或失败时返回FALSE
。
示例
示例#1以非阻塞模式运行工作人员
<?php
echo "Starting\n";
# Create our worker object
$worker= new GearmanWorker(
# Make the worker non-blocking
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING
# Add the default server (localhost, port 4730)
$worker->addServer(
# Add our reverse function
$worker->addFunction('reverse', 'reverse_fn'
# Try to grab a job
while (@$worker->work() ||
$worker->returnCode() == GEARMAN_IO_WAIT ||
$worker->returnCode() == GEARMAN_NO_JOBS)
{
if ($worker->returnCode() == GEARMAN_SUCCESS)
continue;
echo "Waiting for next job...\n";
if (!@$worker->wait())
{
if ($worker->returnCode() == GEARMAN_NO_ACTIVE_FDS)
{
# We are not connected to any servers, so wait a bit before
# trying to reconnect.
sleep(5
continue;
}
break;
}
}
echo "Worker Error: " . $worker->error() . "\n";
function reverse_fn($job)
{
return strrev($job->workload()
}
?>
另请参阅
- GearmanWorker::work() - 等待并执行作业
← GearmanWorker::unregisterAll