Php/docs/gearmanworker.settimeout
GearmanWorker::setTimeout
(PECL gearman >= 0.6.0)
GearmanWorker::setTimeout — Set 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
<?phpecho "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...