GearmanWorker::addFunction

(PECL gearman >= 0.5.0)

GearmanWorker::addFunctionРегистрация и добавление callback-функции

Описание

public GearmanWorker::addFunction(
    string $function_name,
    callable $function,
    mixed $context = null,
    int $timeout = 0
): 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() - Выполняет одну задачу и возвращает результат [Устаревший метод]

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top