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"

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

add a note add a note

User Contributed Notes 1 note

up
0
wyvernthinker at gmail dot com
10 years ago
loop是在所有的request请求都返回之后,才执行下一条吧?
而不是发出request之后立刻返回吧?
谢谢
To Top