ConFoo 2025

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

add a note

User Contributed Notes

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