Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 22815 программистов и 1261 робот. Сейчас ищут 752 программиста ...
Приступая к работе

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

Вернуться к: GearmanWorker

GearmanWorker::addFunction

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



Вернуться к: GearmanWorker

© 2024 «PHP.RU — Сообщество PHP-Программистов»
Главная | Форум | Реклама на сайте | Контакты VIP Сувениры
Разработка компании ODware