Gearmanジョブのタイムアウト期間を設定したい。たとえば、ギアマンジョブを30秒以上実行したくない場合、ジョブが30秒以上実行されている場合は、ジョブを停止して次のジョブを開始する必要があります。
これはGearmanで可能ですか?(Centos6.2でGearmanPHP APIを使用しています)
あなたが探しているのはGearmanWorker::timeoutですここに良い例があります
//Set Timeout
$gmworker->setTimeout(5000);
echo "Waiting for job...\n";
// Start working
while ( @$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT ) {
if ($gmworker->returnCode() == GEARMAN_TIMEOUT) {
// Normally one would want to do something useful here ...
continue;
}
if ($gmworker->returnCode() != GEARMAN_SUCCESS) {
// Somthign failed
break;
}
}