(PECL gearman >= 0.6.0)
GearmanWorker::setTimeout — Définit le délai d'attente maximal d'activité du socket I/O
$timeout
)Définit l'intervalle de temps à attendre une activité du socket I/O.
timeout
Un intervalle de temps, en millisecondes. Une valeur négative indique que le délai sera infini.
Retourne toujours TRUE
.
Exemple #1 Un agent simple qui attend 5 secondes
<?php
echo "Début\n";
# Crée un nouvel agent.
$gmworker= new GearmanWorker();
# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();
# Enregistre une fonction "reverse" avec le serveur.
$gmworker->addFunction("reverse", "reverse_fn");
# Définit le délai d'attente à 5 secondes
$gmworker->setTimeout(5000);
echo "Attente d'un travail...\n";
while(@$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
if ($gmworker->returnCode() == GEARMAN_TIMEOUT)
{
# Normalement, vous devriez faire quelques lignes utiles ici...
echo "Délai d'attente expiré. Attente du prochain travail...\n";
continue;
}
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}
echo "Fait\n";
function reverse_fn($job)
{
return strrev($job->workload());
}
?>
L'exécution d'un agent avec aucun travail de soumis générera un affichage qui ressemblera à quelques choses comme :
Début Attente d'un travail... Délai d'attente expiré. Attente du prochain travail... Délai d'attente expiré. Attente du prochain travail... Délai d'attente expiré. Attente du prochain travail...