首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loop — Send all calls

Description

代码语言:javascript
复制
public static boolean Yar_Concurrent_Client::loop ([ callable $callback [, callable $error_callback ]] )

Send all registed remote RPC calls.

Parameters

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.

Return Values

Examples

Example #1 Yar_Concurrent_Client::loop() example

代码语言:javascript
复制
<?php
function?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/",?"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?

Yar_Concurrent_Client::loop("callback",?"error_callback");?//send?the?requests,?
???????????????????????????????????????????????????????????//the?error_callback?is?optional
?>

The above example will output something similar to:

代码语言:javascript
复制
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"

See Also

  • Yar_Concurrent_Client::reset() - Clean all registered calls
  • Yar_Server::__construct() - Register a server
  • Yar_Server::handle() - Start RPC Server

Yar_Concurrent_Client::reset →

代码语言:txt
复制
 ? 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com