(PECL yar >= 1.0.0)
Yar_Concurrent_Client::call — 注冊一個(gè)并行的服務(wù)調(diào)用
$uri
,$method
,$parameters
= ?,$callback
= ?,$error_callback
= ?,$options
= ?注冊一個(gè)并行的(異步的)遠(yuǎn)程服務(wù)調(diào)用, 不過這個(gè)調(diào)用請求不會(huì)被立即發(fā)出, 而是會(huì)在接下來調(diào)用 Yar_Concurrent_Client::loop()的時(shí)候才真正的發(fā)送出去.
uri
RPC 服務(wù)的 URI(http 或 tcp).
method
調(diào)用的服務(wù)名字(也就是服務(wù)方法名).
parameters
調(diào)用的參數(shù).
callback
回調(diào)函數(shù), 在遠(yuǎn)程服務(wù)的返回到達(dá)的時(shí)候被Yar調(diào)用, 從而可以處理返回內(nèi)容.
唯一 ID, 可用于區(qū)分到底是那個(gè)調(diào)用的返回.
示例 #1 Yar_Concurrent_Client::call()示例
<?php
function callback($retval, $callinfo) {
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")); // if the callback is not specificed,
// callback in loop will be used
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
//this server accept json packager
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
//custom timeout
// 這個(gè)時(shí)候請求都還沒有發(fā)出
?>
以上例程的輸出類似于: