2024 年 PHP Conference Japan

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

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

說明

public GearmanWorker::setTimeout(int $timeout): true

設定等待 Socket I/O 活動的時間間隔。

參數

timeout

以毫秒為單位的時間間隔。負值表示無限逾時。

回傳值

永遠回傳 true

範例

範例 #1 具有 5 秒逾時的簡單 worker

<?php

echo "開始\n";

# 建立 worker 物件。
$gmworker= new GearmanWorker();

# 加入預設伺服器 (localhost)。
$gmworker->addServer();

# 向伺服器註冊函式 "reverse"。
$gmworker->addFunction("reverse", "reverse_fn");

# 設定逾時為 5 秒
$gmworker->setTimeout(5000);

echo
"等待作業...\n";
while(@
$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
if (
$gmworker->returnCode() == GEARMAN_TIMEOUT)
{
# 通常這裡會執行一些有用的操作 ...
echo "逾時。等待下一個作業...\n";
continue;
}

if (
$gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo
"return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

echo
"完成\n";

function
reverse_fn($job)
{
return
strrev($job->workload());
}

?>

在沒有提交作業的情況下執行 worker 將會產生如下所示的輸出

Starting
Waiting for job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...

另請參閱

新增註解

使用者貢獻的註解

此頁面沒有使用者貢獻的註解。
To Top