PHP 8.4.1 Released!

GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHighAñade una tarea de alta prioridad para ser ejecutada en paralelo

Descripción

public GearmanClient::addTaskHigh(
    string $function_name,
    string $workload,
    mixed &$context = ?,
    string $unique = ?
): GearmanTask

Añade una tarea de alta prioridad para ser ejecutada en paralelo junto con otras tareas. Este método debe llamarse para todas las tareas de alta prioridad que se deben ejecutar en paralelo y entonces llamar a GearmanClient::runTasks() para realizar el trabajo. Tareas con una alta prioridad se seleccionarán de la cola antes de las que tienen prioridad normal o baja.

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 no se puedo añadir la tarea

Ejemplos

Ejemplo #1 Una tarea de prioridad alta junto con dos tareas de prioridad normal

Se incluye una tarea de alta prioridad entre otras dos tareas. Sólo está disponible un trabajador, de modo que se ejecuta una única tarea cada vez y la tarea de alta prioridad se ejecuta primero.

<?php

# Creamos 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 esté completado
$gmc->setCompleteCallback("reverse_complete");

# Añade tareas, una de ellas de alta prioridad
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskHigh("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: 2, Hello World!
COMPLETE: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
DONE

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top