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
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com