PHP Conference Nagoya 2025

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeoutSet socket I/O activity timeout

Descrição

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

Sets the interval of time to wait for socket I/O activity.

Parâmetros

timeout

An interval of time in milliseconds. A negative value indicates an infinite timeout.

Valor Retornado

Sempre retorna true.

Exemplos

Exemplo #1 A simple worker with a 5 second timeout

<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

# Set the timeout to 5 seconds
$gmworker->setTimeout(5000);

echo
"Waiting for job...\n";
while(@
$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
if (
$gmworker->returnCode() == GEARMAN_TIMEOUT)
{
# Normally one would want to do something useful here ...
echo "Timeout. Waiting for next job...\n";
continue;
}

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

echo
"Done\n";

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

?>

Running the worker with no submitted jobs will generate output that looks like the following:

Starting
Waiting for job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

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