GearmanClient::addTaskLow

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLowAñade una tarea de baja prioridad para ejecutar en paralelo

Descripción

public GearmanClient::addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask

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