Php/docs/gearmanworker.wait

来自菜鸟教程
跳转至:导航、​搜索

GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::waitWait for activity from one of the job servers


说明

public GearmanWorker::wait ( ) : bool

Causes the worker to wait for activity from one of the Gearman job servers when operating in non-blocking I/O mode. On failure, issues a E_WARNING with the last Gearman error encountered.


参数

此函数没有参数。


返回值

成功时返回 true, 或者在失败时返回 false


范例

Example #1 Running worker in non-blocking mode

<?phpecho "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 jobwhile (@$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());}?>

参见