# GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::wait — Attente une activité d'un ou plusieurs serveurs de travaux

### Description

public GearmanWorker::wait(): bool

Met à attente l'agent d'une activité d'un ou plusieurs serveurs de travaux lors d'un fonctionnement en mode I/O non bloquant. En cas d'échec, une alerte de niveau `E_WARNING` sera émise avec le contenu de la dernière erreur Gearman survenue.

### Liste de paramètres

Cette fonction ne contient aucun paramètre.

### Valeurs de retour

Cette fonction retourne `true` en cas de succès ou `false` si une erreur survient.

### Exemples

Exemple #1 Exécution d'un agent en mode non bloquant

`<?php
echo "Début\n";
# Crée un nouvel agent
$worker= new GearmanWorker();
# Rend l'agent non bloquant
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING);
# Ajoute un serveur par défaut (localhost, port 4730)
$worker->addServer();
# Ajoute une fonction "reverse"
$worker->addFunction('reverse', 'reverse_fn');
# Tente de récupérer un travail
while (@$worker->work() ||
$worker->returnCode() == GEARMAN_IO_WAIT ||
$worker->returnCode() == GEARMAN_NO_JOBS)
{
if ($worker->returnCode() == GEARMAN_SUCCESS)
continue;
echo "Attente du premier travail...\n";
if (!@$worker->wait())
{
if ($worker->returnCode() == GEARMAN_NO_ACTIVE_FDS)
{
# Nous ne sommes connectés à aucun serveur ; nous attendons donc un peu
# avant de tenter une reconnexion.
sleep(5);
continue;
}
break;
}
}
echo "Erreur de l'agent : " . $worker->error() . "\n";
function reverse_fn($job)
{
return strrev($job->workload());
}
?>`

### Voir aussi

- GearmanWorker::work() - Attend et exécute un travail