GearmanWorker::addFunction
(PECL gearman >= 0.5.0)
GearmanWorker::addFunction — Регистрация и добавление callback-функции
Описание
$function_name
, callable $function
, mixed &$context
= ?
, int $timeout
= ?
) : boolРегистрирует имя функции на сервере заданий и добавляет ссылку на эту функцию для обратного вызова. Необязательно можно задать дополнительные данные контекста, которые будет использоваться во время вызова callback-функции и тайм-ауте.
Список параметров
-
function_name
-
Имя функции, которое необходимо зарегистрировать на сервере заданий.
-
function
-
Callback-функция, которая будет вызываться, когда сервер получит задание для зарегистрированного имени.
-
context
-
Ссылка на произвольные данные контекста приложения, к которым нужно обеспечить доступ из функции.
-
timeout
-
Временной интервал в секундах
Возвращаемые значения
Возвращает true
в случае успешного завершения или false
в случае возникновения ошибки.
Примеры
Пример #1 Простой обработчик использует дополнительные данные контекста приложения
<?php
# получаем обработчик gearman
$worker= new GearmanWorker();
# добавляем сервер по умолчанию (localhost)
$worker->addServer();
# определяем переменную, в которой будут храниться данные приложения
$count= 0;
# добавляем функцию "reverse"
$worker->addFunction("reverse", "reverse_cb", $count);
# запускаем обработчик
while ($worker->work());
function reverse_cb($job, &$count)
{
$count++;
return "$count: " . strrev($job->workload());
}
?>
Если клиент пошлет два задания для функции reverse, то вывод будет следующим:
1: olleh 2: dlrow
Смотрите также
- GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]