PHP 7.0.6 Released

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeoutSet socket I/O activity timeout

Description

public bool GearmanWorker::setTimeout ( int $timeout )

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

Parameters

timeout

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

Return Values

Always returns TRUE.

Examples

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

See Also

User Contributed Notes

There are no user contributed notes for this page.
To Top