GearmanWorker::addFunction

(PECL gearman >= 0.5.0)

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

Описание

public GearmanWorker::addFunction ( string $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(); 

# определяем переменную, в которой будут храниться данные приложения
$count0

# добавляем функцию "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() - Выполняет одну задачу и возвращает результат [Устаревший метод]