(PECL gearman >= 0.6.0)
Set socket I/O activity timeout
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.
Returns:
Always returns TRUE
.
Examples:
A simple worker with a 5 second timeout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <?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:
Please login to continue.