GearmanWorker::setTimeout
PHP Manual
PHP Manual»GearmanWorker»GearmanWorker::setTimeout

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeoutDefine el tiempo de espera máximo de actividad del socket I/O

Descripción

public function GearmanWorker::setTimeout(int $timeout): true

Define el intervalo de tiempo para esperar actividad del socket I/O.

Parámetros

timeout
Un intervalo de tiempo, en milisegundos. Un valor negativo indica que el tiempo de espera será infinito.

Valores devueltos

Retorna siempre true.

Ejemplos

Ejemplo #1 Un agente simple que espera 5 segundos

<?php

echo "Inicio\n";

# Crea un nuevo agente.
$gmworker= new GearmanWorker();

# Añade un servidor por omisión (localhost).
$gmworker->addServer();

# Registra una función "reverse" con el servidor.
$gmworker->addFunction("reverse", "reverse_fn");

# Define el tiempo de espera a 5 segundos
$gmworker->setTimeout(5000);

echo "Esperando trabajo...\n";
while(@$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
  if ($gmworker->returnCode() == GEARMAN_TIMEOUT)
  {
    # Normalmente, debería realizarse alguna tarea útil aquí...
    echo "Tiempo de espera expirado. Esperando el próximo trabajo...\n";
    continue;
  }

  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

echo "Hecho\n";

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

?>

La ejecución de un agente sin ningún trabajo enviado generará una salida que se asemejará a algo como:

Inicio
Esperando trabajo...
Tiempo de espera expirado. Esperando el próximo trabajo...
Tiempo de espera expirado. Esperando el próximo trabajo...
Tiempo de espera expirado. Esperando el próximo trabajo...

Véase también

To Top