Запуск всех зарегистрированный вызовов

# Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loop — Запуск всех зарегистрированный вызовов

### Описание

public static function Yar_Concurrent_Client::loop(callable `$callback` = ?, callable `$error_callback` = ?): bool

Запускает все зарегистрированные вызовы.

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

`callback`

  Если задана функция обратного вызова, то она будет запущена после запуска всех запросов но до получения ответов от них с параметром $callinfo равным NULL.

  Далее, если функция обратного вызова не была задана при регистрации вызова, то для обработки результата будет вызвана эта функция.

`error_callback`

  Если этот параметр задан, то Yar запустит эту функцию в случае возникновения ошибки.

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

### Примеры

Пример #1 Пример использования Yar_Concurrent_Client::loop()

    <?php
    function callback($retval, $callinfo) {
         if ($callinfo == NULL) {
            echo "Так, все запросы запущены, но пока ни одного ответа\n";
         } else {
            echo "Это ответ от удалённого запроса. Имя метода", $callinfo["method"],
                 ". Был зарегистрирован " , $callinfo["sequence"] , "\n";
            var_dump($retval);
         }
    }

    function error_callback($type, $error, $callinfo) {
        error_log($error);
    }

    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");

    //если функция обратного вызова не задана, то будет использована определённая в цикле вызовов
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));

    //этот сервер принимает упаковку JSON
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));

    //отдельно заданное время ожидания
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));

    Yar_Concurrent_Client::loop("callback", "error_callback"); //запускаем запросы,
                                                               //параметр error_callback не обязателен
    ?>

Вывод приведённого примера будет похож на:

    Так, все запросы запущены, но пока ни одного ответа
    Это ответ от удалённого запроса. Имя метода issome_method. Был зарегистрирован 4
    string(11) "some_method"
    Это ответ от удалённого запроса. Имя метода issome_method. Был зарегистрирован 1
    string(11) "some_method"
    Это ответ от удалённого запроса. Имя метода issome_method. Был зарегистрирован 2
    string(11) "some_method"
    Это ответ от удалённого запроса. Имя метода issome_method. Был зарегистрирован 3
    string(11) "some_method"

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

- Yar_Concurrent_Client::call() - Регистрирует вызов удалённой процедуры
- Yar_Concurrent_Client::reset() - Очистить все зарегистрированные вызовы
- Yar_Server::__construct() - Конструктор Yar_Server
- Yar_Server::handle() - Запустить сервер RPC

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