2010-06-16 5 views
2

Je tente de créer une page JSP qui affichera tout l'état d'un groupe de serveurs locaux. Actuellement, je crée une classe de planification qui interrogera constamment pour vérifier l'état du serveur avec un intervalle de 30 secondes, avec un délai de 5 secondes pour attendre chaque réponse du serveur et fournir les informations à la page JSP. Cependant, je trouve que cette façon de faire n'est pas exacte, car il faudra un certain temps avant que les informations de la classe d'horaire soient mises à jour. Avez-vous un meilleur moyen de vérifier l'état de plusieurs serveurs dans un réseau local?Méthodes d'interrogation du statut du serveur

- Mise à jour -

Merci @Romain Hippeau et @dbyrne pour leurs réponses

Actuellement, je suis en train de rendre le code plus en fin de serveur, qui est de faire un contrôle constant sur la état du groupe de serveurs de façon asynchrone pour la mise à jour afin de le rendre plus réactif. Cependant, j'ai oublié d'ajouter que le client a la possibilité de contrôler l'état du serveur. J'ai donc un problème par exemple lorsque le client change l'état du serveur, puis actualise la page. Lorsque la page récupère les informations de la classe de planification non mise à jour, elle affiche à la place l'état précédent du serveur.

Répondre

0

Vous pouvez utiliser Tomcat Comet est ici un article http://www.ibm.com/developerworks/web/library/wa-cometjava/index.html.
Cette technologie (qui fait partie de la spécification Servlet 3.0) vous permet d'envoyer des notifications aux clients. Il ya des problèmes avec l'exécution derrière un pare-feu, Si vous êtes dans un intranet, cela ne devrait pas être trop gros d'un problème

+0

merci pour les articles. Je vais essayer. Mais actuellement pour Ajax, j'utilise des frameworks DWR, qui fournissent également des ajax inverses tels que polling et comet. – Yijinsei

0

Assurez-vous d'interroger les serveurs de manière asynchrone. Vous ne voulez pas attendre une réponse d'un serveur avant d'interroger le suivant. Cela permettra de réduire considérablement le temps nécessaire pour interroger tous les serveurs. À votre question, je ne savais pas si vous le faisiez déjà.

+0

merci dbyrne, en ce moment je le fais de manière séquentielle. Vous avez raison, je pense que je vais essayer d'expérimenter avec java.util.concurrent.future pour le rendre asynchrone – Yijinsei

Questions connexes