文字

GearmanWorker::wait

(PECL gearman >= 0.6.0)

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

说明

public bool GearmanWorker::wait ( void )

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

<?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() - Wait for and perform jobs
上一篇: 下一篇: