Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loopSend all calls

Beschreibung

public static Yar_Concurrent_Client::loop(callable $callback = ?, callable $error_callback = ?): bool

Send all registed remote RPC calls.

Parameter-Liste

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.

Rückgabewerte

Beispiele

Beispiel #1 Yar_Concurrent_Client::loop() example

<?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
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

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"

Siehe auch

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