GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHighAdiciona uma tarefa de alta prioridade para ser executada em paralelo

Descrição

public GearmanClient::addTaskHigh(
    string $function_name,
    string|int|float $workload,
    mixed $context = null,
    ?string $unique_key = null
): GearmanTask|false

Adiciona uma tarefa de alta prioridade para ser executada em paralelo com outras tarefas. Chame este método para todas as tarefas de alta prioridade a serem executadas em paralelo, então chame GearmanClient::runTasks() para executar a tarefa. Tarefas com alta prioridade serão selecionadas da fila antes daquelas de prioridade normal ou baixa.

Parâmetros

function_name

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

context

Contexto da aplicação para associar a uma tarefa

unique_key

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

Um objeto GearmanTask ou false se a tarefa não pôde ser adicionada.

Exemplos

Exemplo #1 Uma tarefa de alta prioridade junto com duas tarefas normais

Uma tarefa de alta prioridade é incluída entre duas outras tarefas. Um único trabalhador está disponível, para que as tarefas sejam executadas uma de cada vez, com a tarefa de alta prioridade sendo executada primeiro.

<?php

# Cria o cliente gearman
$gmc= new GearmanClient();

# Adiciona o servidor de tarefa padrão
$gmc->addServer();

# Define a função de retorno para quando a tarefa for concluída
$gmc->setCompleteCallback("reverse_complete");

# Adiciona tarefas, uma das quais é de alta prioridade
$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
"ERRO " . $gmc->error() . "\n";
exit;
}
echo
"PRONTO\n";

function
reverse_complete($task)
{
echo
"CONCLUÍDO: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

O exemplo acima produzirá algo semelhante a:

CONCLUÍDO: 2, Hello World!
CONCLUÍDO: 3, !dlroW olleH
CONCLUÍDO: 1, !dlroW olleH
PRONTO

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top