(PECL gearman >= 0.5.0)
GearmanWorker::addFunction — Registra y añade una función de retrollamada
$function_name,$function,$context = null,$timeout = 0Registra una función de retrollamada con el servidor de trabajos y especifica una retrollamada correspondiente a esta función. Opcionalmente, fija datos de contexto de la aplicación a utilizar cuando la función de retrollamada es llamada, así como un tiempo límite de ejecución.
function_nameEl nombre de la función a registrar con el servidor de trabajos
functionUna función de retrollamada a llamar cuando un trabajo es enviado
contextUna referencia a datos de contexto de la aplicación que pueden ser modificados por la función del agente.
timeoutUn intervalo de tiempo, en segundos.
Ejemplo #1 Agente simple que utiliza datos de contexto de la aplicación
<?php
# Crea un agente Gearman
$worker= new GearmanWorker();
# Añade el servidor por omisión (localhost)
$worker->addServer();
# Define una variable que contiene los datos de la aplicación
$count= 0;
# Añade la función "reverse"
$worker->addFunction("reverse", "reverse_cb", $count);
# Inicia el agente
while ($worker->work());
function reverse_cb($job, &$count)
{
$count++;
return "$count: " . strrev($job->workload());
}
?>La ejecución de un cliente que envía 2 trabajos para la función reverse mostrará algo como:
1: olleh 2: dlrow