PHP Conference Japan 2024

GearmanClient::setCompleteCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCompleteCallback設定在任務完成時呼叫的函式

說明

public GearmanClient::setCompleteCallback(callable $callback): bool

用於設定一個回呼函式,當 GearmanTask 完成時,或當 worker 呼叫 GearmanJob::sendComplete() 時(以先發生的為準)呼叫此函式。

此回呼僅在使用 GearmanClient::runTasks() 執行 GearmanTask 時執行。它不用於個別的工作。

注意:

此回呼函式只會在呼叫此方法*之後*新增的工作(例如,透過呼叫 GearmanClient::addTask())觸發。

參數

callback

要呼叫的函式或方法。它應該返回一個有效的 Gearman 返回值

如果沒有 return 陳述式,則預設為 GEARMAN_SUCCESS

callback(GearmanTask $task, mixed $context): int
task

此回呼函式所針對的工作。

context

傳遞給 GearmanClient::addTask()(或等效方法)作為 context 的任何值。

返回值

成功時返回 true,失敗時返回 false

另請參閱

新增註解

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

Justas Butkus
13 年前
需要注意的是,回呼函式*必須*返回一個有效的 Gearman 狀態碼,或者不返回任何值(不要使用 return)。

也就是說,以下是有效的完成回呼函式

<?php
function goodCallbackOne(GearmanTask $task)
{
print_r($task);
}
?>

<?php
function goodCallbackTwo(GearmanTask $task)
{
print_r($task);
return
GEARMAN_SUCCESS;
}
?>

而以下*不是*有效的,除非您希望您的客戶端程式碼因 Gearman 錯誤「german wait:no active file descriptors」而失敗

<?php
函式 badCallbackTwo(GearmanTask $task)
{
print_r($task);
返回
true;
}
?>
To Top