©
Dieses Dokument verwendet PHP-Handbuch für chinesische Websites Freigeben
(PECL gearman >= 0.6.0)
GearmanWorker::setTimeout — Set socket I/O activity timeout
$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...