(PECL gearman >= 0.5.0)
GearmanClient::addTaskLow — Adiciona uma tarefa de baixa prioridade para ser executada em paralelo
$function_name
,$workload
,$context
= null
,$unique_key
= null
Adiciona uma tarefa de segundo plano de baixa prioridade para ser executada em paralelo com outras tarefas. Chame este método para todas as tarefas a serem executadas em paralelo, então chame GearmanClient::runTasks() para executar a tarefa. Tarefas com baixa prioridade serão selecionadas da fila após aquelas 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 baixa prioridade junto com duas tarefas normais
Uma tarefa de baixa 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 baixa prioridade sendo executada por último.
<?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 baixa prioridade
$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 "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: 3, !dlroW olleH CONCLUÍDO: 1, !dlroW olleH CONCLUÍDO: 2, Hello World! PRONTO