PHP Conference Japan 2024

GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHigh新增一個高優先級任務以並行執行

說明

public GearmanClient::addTaskHigh(
    字串 $function_name,
    字串|整數|浮點數 $workload,
    混合 $context = null,
    ?字串 $unique_key = null
): GearmanTask|false

新增一個高優先級任務,與其他任務並行執行。針對所有要並行執行的高優先級任務呼叫此方法,然後呼叫 GearmanClient::runTasks() 執行工作。高優先級任務會優先於一般或低優先級任務從佇列中選取。

參數

function_name

Worker 要執行的已註冊函式

workload

要處理的序列化資料

context

與任務關聯的應用程式上下文

unique_key

用於識別特定任務的唯一 ID

回傳值

一個 GearmanTask 物件,如果無法新增任務,則回傳 false

範例

範例 #1 一個高優先級任務以及兩個一般任務

一個高優先級任務包含在兩個其他任務中。只有一個 worker 可用,因此任務會一次執行一個,高優先級任務會先執行。

<?php

# 建立 Gearman 用戶端
$gmc= new GearmanClient();

# 加入預設的工作伺服器
$gmc->addServer();

# 設定工作完成時的回呼函式
$gmc->setCompleteCallback("reverse_complete");

# 加入任務,其中一個是高優先級
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskHigh("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");

if (!
$gmc->runTasks())
{
echo
"錯誤 " . $gmc->error() . "\n";
exit;
}
echo
"完成\n";

function
reverse_complete($task)
{
echo
"完成: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

上述範例會輸出類似以下的內容

COMPLETE: 2, Hello World!
COMPLETE: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
DONE

另請參閱

新增註解

使用者貢獻的註解

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