PHP Conference Japan 2024

GearmanClient::setTimeout

(PECL gearman >= 0.6.0)

GearmanClient::setTimeout設定 Socket I/O 活動逾時

說明

public GearmanClient::setTimeout(int $timeout): bool

設定 Socket I/O 活動的逾時。

參數

逾時

以毫秒為單位的時間間隔。

回傳值

總是回傳 true

新增註解

使用者貢獻的註解 3 則註解

casper at bcx dot nl
7 年前
如果使用此方法設定逾時,且發生逾時,呼叫 ->returnCode() 將會回傳 GEARMAN_TIMEOUT。

請注意,例如 doBackground() 呼叫的逾時並不表示工作沒有啟動。很有可能工作已提交並啟動,但 gearmand 伺服器無法將該資訊傳回給您。
Ismael Cristal Jr
12 年前
GearmanClient 的預設逾時為 -1,您需要使用 setTimeout 將其設定為正數,以避免即使根本沒有 worker 正在執行,您的腳本也會永遠等待執行工作的情況。
luckyboy449 at yahoo dot com
5 年前
請注意,當您將回呼與 addTask() 和 addTaskBackground() 方法一起使用時,大多會觸發 GEARMAN_TIMEOUT。如果 Gearman 伺服器在大量工作的情況下無法回應目前工作的狀態,用戶端肯定會拋出 GEARMAN_TIMEOUT 錯誤。

避免此錯誤最安全的方法是使用 doBackground() 方法,尤其是在您不希望查找工作狀態(失敗或完成)時,而當您向伺服器發送大量工作時,這應該是一項規則。
To Top