GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::waitAguarda atividade de um dos servidores de trabalho

Descrição

public function GearmanWorker::wait(): bool

Faz com que o trabalhador espere por atividade de um dos servidores de trabalho do Gearman ao operar em modo de E/S não bloqueante. Em caso de falha, emite um E_WARNING com o último erro do Gearman encontrado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Executando o trabalhador no modo não bloqueante

<?php

echo "Começando\n";

# Cria um objeto trabalhador.
$worker= new GearmanWorker();

# Torna o trabalhador não bloqueante
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING);

# Adiciona o servidor padrão (localhost, porta 4730)
$worker->addServer();

# Adiciona nossa função reversa
$worker->addFunction('reverse', 'reverse_fn');

# Tenta pegar um trabalho
while (@$worker->work() ||
       $worker->returnCode() == GEARMAN_IO_WAIT ||
       $worker->returnCode() == GEARMAN_NO_JOBS)
{
  if ($worker->returnCode() == GEARMAN_SUCCESS)
    continue;

  echo "Esperando o próximo trabalho...\n";
  if (!@$worker->wait())
  {
    if ($worker->returnCode() == GEARMAN_NO_ACTIVE_FDS)
    {
      # Não estamos conectados a nenhum servidor, então
      # aguarde um pouco antes de tentar reconectar.
      sleep(5);
      continue;
    }
    break;
  }
}

echo "Erro no trabalhador: " . $worker->error() . "\n";

function reverse_fn($job)
{
  return strrev($job->workload());
}


?>

Veja Também

adicionar nota

Notas de Usuários

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