PHP Conference Nagoya 2025

GearmanClient::setCompleteCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCompleteCallbackУстанавливает функцию, которая вызовется после завершении задачи

Описание

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

Метод устанавливает callback-функцию, которая вызовется, когда завершится задча GearmanTask или когда рабочий процесс вызовет метод GearmanJob::sendComplete(), в зависимости от того, что произойдёт раньше.

Функция обратного вызова выполняется, только если задачу GearmanTask выполнили через метод GearmanClient::runTasks(). Метод не работает с отдельными заданиями.

Замечание:

Callback-функция запустится только для задач, которые добавили методом GearmanClient::addTask() или альтернативным методом после вызова этого метода.

Список параметров

callback

Функция или метод, который требуется вызывать и от которого требуется возврат допустимого значение возврата сервера Gearman.

По умолчанию из callback-функции возвращается значение GEARMAN_SUCCESS, если в функции обратного вызова не указали инструкцию return.

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

Задача, для которой вызывается callback-функция.

context

Данные, которые передали в метод GearmanClient::addTask() или эквивалентный метод в аргументе context.

Возвращаемые значения

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Смотрите также

  • GearmanClient::setDataCallback() - Задаёт callback-функцию для обработки переданных данных
  • GearmanClient::setCreatedCallback() - Устанавливает callback-функцию при постановке задачи в очередь
  • GearmanClient::setExceptionCallback() - Устанавливает функцию обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Устанавливает функцию обратного вызова, которая вызывается при сбое задания
  • GearmanClient::setStatusCallback() - Устанавливает функцию обратного вызова для сбора информации о статусе задания
  • GearmanClient::setWarningCallback() - Устанавливает функцию обратного вызова для обработки предупреждений рабочего процесса
  • GearmanClient::setWorkloadCallback() - Устанавливает функцию обратного вызова для приёма промежуточных обновлений данных

Добавить

Примечания пользователей 1 note

up
6
Justas Butkus
13 years ago
One shall note, that callback function MUST either return a valid Gearman status code, or return nothing (do not return).

I.e. these are valid complete callbacks:

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

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

While following is NOT, unless you want your client code to fail with Gearman error 'german wait:no active file descriptors':

<?php
function badCallbackTwo(GearmanTask $task)
{
print_r($task);
return
true;
}
?>
To Top