Yar_Concurrent_Client::loop
(PECL yar >= 1.0.0)
Yar_Concurrent_Client::loop — Send all calls
説明
public static Yar_Concurrent_Client::loop
([ callable $callback
[, callable $error_callback
]] ) : bool
Send all registed remote RPC calls.
パラメータ
callback
If this callback is set, then Yar will call this callback after all calls are sent and before any response return, with a $callinfo NULL.
Then, if user didn't specify callback when registering concurrent call, this callback will be used to handle response, otherwise, the callback specified while registering will be used.
error_callback
If this callback is set, then Yar will call this callback while error occurred.
返り値
例
例1 Yar_Concurrent_Client::loop() example
<?phpfunction callback($retval, $callinfo) { if ($callinfo == NULL) { echo "Now, all requests are sent, and no any response available\n"; } else { echo "This is a remote call response, the method name is", $callinfo["method"], ". calling sequence is " , $callinfo["sequence"] , "\n"; var_dump($retval); }} function error_callback($type, $error, $callinfo) { error_log($error);}Yar_Concurrent_Client::call("http://host/api/%22, "some_method", array("parameters"), "callback");Yar_Concurrent_Client::call("http://host/api/%22, "some_method", array("parameters")); // if the callback is not specificed, // callback in loop will be usedYar_Concurrent_Client::call("http://host/api/%22, "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json")); //this server accept json packagerYar_Concurrent_Client::call("http://host/api/%22, "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1)); //custom timeout Yar_Concurrent_Client::loop("callback", "error_callback"); //send the requests, //the error_callback is optional?>
上の例の出力は、 たとえば以下のようになります。
Now, all requests are sent, and no any response available This is a remote call response, the method name issome_method. calling sequence is 4 string(11) "some_method" This is a remote call response, the method name issome_method. calling sequence is 1 string(11) "some_method" This is a remote call response, the method name issome_method. calling sequence is 2 string(11) "some_method" This is a remote call response, the method name issome_method. calling sequence is 3 string(11) "some_method"
参考
- Yar_Concurrent_Client::call() - Register a concurrent call
- Yar_Concurrent_Client::reset() - Clean all registered calls
- Yar_Server::__construct() - Register a server
- Yar_Server::handle() - Start RPC Server