GearmanClient::addTaskLow
(PECL gearman >= 0.5.0)
GearmanClient::addTaskLow — Añade una tarea de baja prioridad para ejecutar en paralelo
Descripción
$function_name
, string $workload
[, mixed &$context
[, string $unique
]] )Añade una tarea de baja prioridad en segundo plano para ejecutar en paralelo junto con otras tareas. Debe llamarse a este método para todas las tareas que se ejecutan en paralelo y entonces llamar a GearmanClient::runTasks() para realizar el trabajo. Tareas con una baja prioridad se seleccionarán de la cola después de las tareas de prioridad normal o alta.
Parámetros
-
function_name -
Función registrada que ejecutará el worker
-
workload -
Datos serializados a ser procesados
-
context -
Aplicación context a asociar con la tarea
-
unique -
ID único para identificar una tarea en particular
Valores devueltos
Un objeto GearmanTask o FALSE si la tarea no puede
ser añadida.
Ejemplos
Ejemplo #1 Una tarea de baja prioridad junto con dos tareas de prioridad normal
Se incluye una tarea de prioridad baja junto a otras dos tareas. Se dispone de un solo trabajador, de modo que únicamente se ejecuta una tarea por vez y la tarea de baja prioridad la última.
<?php
# Crea el cliente gearman
$gmc= new GearmanClient();
# Añade el servidor de trabajos por defecto
$gmc->addServer();
# Establece la llamada de retorno para cuando el trabajo ha terminado
$gmc->setCompleteCallback("reverse_complete");
# Añade tareas, una de ellas de baja prioridad
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskLow("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");
if (! $gmc->runTasks())
{
echo "ERROR " . $gmc->error() . "\n";
exit;
}
echo "DONE\n";
function reverse_complete($task)
{
echo "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}
?>
El resultado del ejemplo sería algo similar a:
COMPLETE: 3, !dlroW olleH COMPLETE: 1, !dlroW olleH COMPLETE: 2, Hello World! DONE
Ver también
- GearmanClient::addTask() - Añade una tarea para ser ejecutada en paralelo
- GearmanClient::addTaskHigh() - Añade una tarea de alta prioridad para ser ejecutada en paralelo
- GearmanClient::addTaskBackground() - Ejecuta una tarea en segundo plano para ser ejecutada en paralelo
- GearmanClient::addTaskHighBackground() - Añade una tarea de alta prioridad ejecutada en segundo plano y en paralelo
- GearmanClient::addTaskLowBackground() - Añade una tarea de baja prioridad en segundo plano para ser ejecutada en paralelo
- GearmanClient::runTasks() - Ejecuta una lista de tareas en paralelo