首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::wait - 等待来自其中一个作业服务器的活动

描述

代码语言:javascript
复制
public bool GearmanWorker::wait ( void )

在非阻塞I/O模式下工作时,导致工作人员等待来自其中一个Gearman作业服务器的活动。失败时,遇到最后一个Gearman错误E_WARNING

参数

该函数没有参数。

返回值

成功时返回TRUE或失败时返回FALSE

示例

示例#1以非阻塞模式运行工作人员

代码语言:javascript
复制
<?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::unregisterAll

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com