GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

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

Descripción

public 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

Siempre devuelve 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...

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top