1

Gearmanジョブのタイムアウト期間を設定したい。たとえば、ギアマンジョブを30秒以上実行したくない場合、ジョブが30秒以上実行されている場合は、ジョブを停止して次のジョブを開始する必要があります。

これはGearmanで可能ですか?(Centos6.2でGearmanPHP APIを使用しています)

4

1 に答える 1

2

あなたが探しているのは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;
    }
}
于 2012-12-17T14:17:33.580 に答える