Attend une activité d'un ou plusieurs serveurs de travaux

# GearmanWorker::wait

(PECL gearman >= 0.6.0)

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

### Description

public function GearmanWorker::wait(): bool

Met en 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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open