GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeoutSet socket I/O activity timeout

说明

public GearmanWorker::setTimeout ( int $timeout ) : bool

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...

参见

User Contributed Notes

There are no user contributed notes for this page.