Yar_Concurrent_Client::loop
(PECL yar >= 1.0.0)
Yar_Concurrent_Client::loop — Envoi tous les appels
Description
$callback
[, callable $error_callback
]] ) : boolEnvoi tous les appels distants RPC enregistrés.
Liste de paramètres
-
callback
-
Si la fonction de rappel est définie, alors Yar appelera cette fonction de rappel après avoir envoyé tous les appels, et avant le retour des réponses, avec $callinfo vallant NULL.
Alors, si l'utilisateur ne spécifie pas de fonction de rappel lors de l'enregistrement d'appel concurrent, cette fonction de rappel sera utilisée pour gérer les réponses, sinon, la fonction de rappel spécifiée pendant l'enregistrement sera utilisée.
-
error_callback
-
Si la fonction de rappel est définie, alors Yar l'appelera lorsqu'une erreur surviendra.
Exemples
Exemple #1 Exemple avec Yar_Concurrent_Client::loop()
<?php
function callback($retval, $callinfo) {
if ($callinfo == NULL) {
echo "Maintenant, toutes les requêtes ont été émises, et aucune réponse n'est pour l'instant disponible\n";
} else {
echo "Ceci est une réponse à un appel distant, le nom de la méthode est ", $callinfo["method"],
". La séquence d'appel est " , $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")); // Si la fonction de rappel n'est pas spécifiée
// la fonction de rappel de la boucle sera utilisée
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
// ce serveur accepte le packager json
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
//Délai d'attente maximal personnalisé
Yar_Concurrent_Client::loop("callback", "error_callback"); //Envoi les requêtes,
//error_callback est optionnel
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
Maintenant, toutes les requêtes ont été émises, et aucune réponse n'est pour l'instant disponible Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 4 string(11) "some_method" Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 1 string(11) "some_method" Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 2 string(11) "some_method" Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 3 string(11) "some_method"
Voir aussi
- Yar_Concurrent_Client::call() - Enregistre un appel concurrent
- Yar_Concurrent_Client::reset() - Nettoie tous les appels enregistré
- Yar_Server::__construct() - Enregistre un serveur
- Yar_Server::handle() - Démarre un serveur RPC
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-yar-concurrent-client.loop.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.