PHP
Gearman

GearmanWorker::setTimeout

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeout - 设置套接字I/O活动超时

描述

public bool GearmanWorker::setTimeout ( int $timeout )

设置等待套接字I/O活动的时间间隔。

参数

timeout

以毫秒为单位的时间间隔。负值表示无限超时。

返回值

始终返回TRUE

示例

示例#1一个5秒超时的简单工人

<?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() } ?>

在没有提交作业的情况下运行worker将会生成如下所示的输出:

Starting Waiting for job... Timeout. Waiting for next job... Timeout. Waiting for next job... Timeout. Waiting for next job...

另请参阅

  • GearmanWorker::timeout() - 获取套接字I / O活动超时

← GearmanWorker::setOptions

GearmanWorker::timeout →