PHP Conference Japan 2024

GearmanClient::addTaskLow

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLow新增一個低優先級任務以並行執行

說明

public GearmanClient::addTaskLow(
    字串 $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 Client
$gmc= new GearmanClient();

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

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

// 加入任務,其中一個是低優先級
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskLow("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: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
COMPLETE: 2, Hello World!
DONE

另請參閱

新增註記

使用者提供的註記

此頁面沒有使用者提供的註記。
To Top