Ожидание запроса с одного из сервера задач

# GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::wait — Ожидание запроса с одного из сервера задач

### Описание

public function GearmanWorker::wait(): bool

При работе в неблокирующем режиме ввода/вывода заставляет обработчика ожидать задания от какого-либо сервера заданий Gearman. В случае отказа будет выдано предупреждение `E_WARNING` с указанием последней произошедшей ошибки.

### Список параметров

Сигнатура функции не содержит параметров.

### Возвращаемые значения

Функция возвращает `true`, если выполнилась успешно, или `false`, если возникла ошибка.

### Примеры

Пример #1 Запуск обработчика в неблокирующем режиме

    <?php

    echo "Запуск\n";

    # создание объекта обработчика
    $worker= new GearmanWorker();

    # включение неблокирующего режима
    $worker->addOptions(GEARMAN_WORKER_NON_BLOCKING);

    # добавление сервера по умолчанию (localhost на порту 4730)
    $worker->addServer();

    # добавление callback-функции
    $worker->addFunction('reverse', 'reverse_fn');

    # попробуем получить задание
    while (@$worker->work() ||
           $worker->returnCode() == GEARMAN_IO_WAIT ||
           $worker->returnCode() == GEARMAN_NO_JOBS)
    {
      if ($worker->returnCode() == GEARMAN_SUCCESS)
        continue;

      echo "Ожидание следующего задания...\n";
      if (!@$worker->wait())
      {
        if ($worker->returnCode() == GEARMAN_NO_ACTIVE_FDS)
        {
          # мы не подключены ни к одному из серверов, подождём немного
          # и попробуем переподключиться
          sleep(5);
          continue;
        }
        break;
      }
    }

    echo "Ошибка в обработчике: " . $worker->error() . "\n";

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

    ?>

### Смотрите также

- GearmanWorker::work() - Ожидание и выполнение заданий

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