2011-08-03 9 views
5

Używam rozszerzenia pecl gearman w php i chcę mieć timeout dla wywołania funkcji. Dwa przypadki użycia: (1) brak działających pracowników, (2) pracownik wykonuje zbyt długo, aby wykonaćphp Timeman GearmanClient

Jeśli wszystko działa, wywołanie jest bardzo szybkie i chcę uniknąć nadmiernego obciążenia dla tego limitu czasu.

Kod Obecnie używać:

$client = new GearmanClient(); 
$client->addServer(); 
$client->do('nonexistingfunction'); 
+0

Mam powiązane, ale nieco bardziej skomplikowany przypadek użycia, więc poprosili nowe pytanie tutaj: https://stackoverflow.com/questions/49036819/get-response-from-multiple-jobs-in-gearman-but-abort-after-a-timeout/49049263 – IMSoP

Odpowiedz

0

Wystarczy zadzwonić GearmanClient::setTimeout metodę z liczby milisekund:

$client = new GearmanClient(); 
$client->addServer(); 
$client->setTimeout(5000); 
+3

Myślę, że to czas oczekiwania na komunikację I/O z protektorem i nie pomoże mi w moim problemie. –