1
我想設置齒輪工作的超時時間。例如,我不希望減速機作業運行時間超過30秒,如果作業運行時間超過30秒,應該停止並開始下一個作業。如何設置齒輪工作的超時時間
這對Gearman來說可能嗎? (我使用了PHP的Gearman API在CentOS 6.2)
我想設置齒輪工作的超時時間。例如,我不希望減速機作業運行時間超過30秒,如果作業運行時間超過30秒,應該停止並開始下一個作業。如何設置齒輪工作的超時時間
這對Gearman來說可能嗎? (我使用了PHP的Gearman API在CentOS 6.2)
你在找什麼是GearmanWorker::timeout這裏是一個Good Example
//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;
}
}
這是錯誤的 - 的setTimeout只適用於沒有插座IO,工人可以運行無論何時都想要。我剛剛嘗試在'setTimeout(1000)'之後添加'sleep(3)',它不會*在GEARMAN_TIMEOUT中結束。請提供一個測試用例來證明我的錯誤 – Fluffy
@Fluffy當您調用'work()'時,工作者超時開始工作,之前的睡眠不做任何事情。 – algorhythm