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


(PECL gearman >= 0.5.0)

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

Описание

public bool GearmanWorker::addFunction ( string $function_name , callable $function [, mixed &$context [, int $timeout ]] )

Регистрирует имя функции на сервере заданий и добавляет ссылку на эту функцию для обратного вызова. Дополнительно можно задать контекс, который будет использоваться во время обратного вызова, и таймаут.

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

function_name

Имя функции, которое необходимо зарегистрировать на сервере.

function

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

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