首页
学习
活动
专区
工具
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

扫码关注腾讯云开发者

领取腾讯云代金券