(PECL gearman >= 0.5.0)
GearmanWorker::addFunction — Registra y añade una función de retorno
$function_name
, callable $function
[, mixed &$context
[, int $timeout
]] )Registra el nombre de una función en el servidor de trabajos y especifica la llamada de retorno quer corresponde a esa función. Opcionalmente se puede especificar datos extra del contexto de aplicación para que sean usados cuando se realiza la llamada a la función de retorno o expira el tiempo máximo permitido.
function_name
Nombre de la función a registrar en el servidor de trabajos
function
Función de retorno a llamar cuando el trabajo para el nombre de función registrado es enviado
context
Referencia a datos de contexto de la aplicación que pueden ser modificados por la la función del trabajador
timeout
Intervalo de tiempo en segundos
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Ejemplo #1 Sencillo trabajador que usa los datos de contexto de aplicación
<?php
# obtiene un trabajador gearman
$worker= new GearmanWorker();
# añade el servidor por defecto (localhost)
$worker->addServer();
# define una variable en la que mantener los datos de aplicación
$count= 0;
# añade la función "reverse"
$worker->addFunction("reverse", "reverse_cb", &$count);
# inicia el trabajador
while ($worker->work());
function reverse_cb($job, $count)
{
$count++;
return "$count: " . strrev($job->workload());
}
?>
Ejecutando un cliente que envía dos trabajos para la función "reverse", tendrá un resultado similar a este:
1: olleh 2: dlrow