(PECL gearman >= 0.5.0)
GearmanClient::addTaskHigh — Adiciona uma tarefa de alta prioridade para ser executada em paralelo
$function_name
,$workload
,$context
= null
,$unique_key
= null
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.
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
Um objeto GearmanTask ou false
se a tarefa não pôde ser adicionada.
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