文字

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeoutSet socket I/O activity timeout

说明

public bool GearmanWorker::setTimeout ( int $timeout )

Sets the interval of time to wait for socket I/O activity.

参数

timeout

An interval of time in milliseconds. A negative value indicates an infinite timeout.

返回值

Always returns TRUE .

范例

Example #1 A simple worker with a 5 second timeout

<?php

echo  "Starting\n" ;

# Create our worker object.
$gmworker = new  GearmanWorker ();

# Add default server (localhost).
$gmworker -> addServer ();

# Register function "reverse" with the server.
$gmworker -> addFunction ( "reverse" "reverse_fn" );

# Set the timeout to 5 seconds
$gmworker -> setTimeout ( 5000 );

echo 
"Waiting for job...\n" ;
while(@
$gmworker -> work () ||  $gmworker -> returnCode () ==  GEARMAN_TIMEOUT )
{
  if (
$gmworker -> returnCode () ==  GEARMAN_TIMEOUT )
  {
    
# Normally one would want to do something useful here ...
    
echo  "Timeout. Waiting for next job...\n" ;
    continue;
  }

  if (
$gmworker -> returnCode () !=  GEARMAN_SUCCESS )
  {
    echo 
"return_code: "  $gmworker -> returnCode () .  "\n" ;
    break;
  }
}

echo 
"Done\n" ;

function 
reverse_fn ( $job )
{
  return 
strrev ( $job -> workload ());
}

?>

Running the worker with no submitted jobs will generate output that looks like the following:

Starting
Waiting for job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...

参见

  • GearmanWorker::timeout() - Get socket I/O activity timeout
上一篇: 下一篇: