(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_name
El nombre de la función a registrar con el servidor de trabajos
function
Una función de retrollamada a llamar cuando un trabajo es enviado
context
Una referencia a datos de contexto de la aplicación que pueden ser modificados por la función del agente.
timeout
Un 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