Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

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

Описание

public static 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"

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