2010-06-16 116 views
2

我尝试创建一个JSP页面,它将显示一组本地服务器中的所有状态。 目前我创建了一个调度类,它将持续轮询以30秒为间隔检查服务器的状态,并等待每个服务器回复5秒钟的延迟,并向JSP页面提供信息。不过,我发现这种方式并不准确,因为它需要一段时间才能更新时间表类的信息。你们有没有更好的方法来检查本地网络中的多台服务器的状态?轮询服务器状态的方法

- 更新 -

感谢@Romain Hippeau和@dbyrne为他们的答案

目前,我试图使代码更在服务端,也就是做一个持续检查 上异步地更新服务器组的状态以便使其更具响应性。 但是我忘了补充说客户端有能力控制服务器状态。因此,我有问题,例如客户端更改服务器状态时,然后刷新页面。当页面从未更新的日程表类中检索信息时,它将显示服务器的以前的状态。

回答

0

你可以在这里使用Tomcat彗星是一篇文章http://www.ibm.com/developerworks/web/library/wa-cometjava/index.html
该技术(它是Servlet 3.0规范的一部分)允许您将通知推送给客户端。在防火墙后面运行有问题,如果你在Intranet内,这应该不会太大问题

+0

谢谢你的文章。我会给它一个镜头。但是目前对于Ajax,我使用的是DWR框架,它也提供反向Ajax,如轮询和彗星。 – Yijinsei 2010-06-16 01:46:47

0

确保您异步地轮询服务器。在轮询下一个服务器之前,您不希望等待来自一台服务器的响应。这将大大减少轮询所有服务器所花费的时间。从你的问题来看,我不清楚你是否已经这样做了。

+0

谢谢dbyrne,现在我按顺序执行此操作。你是对的,我想我会尝试使用java.util.concurrent.future来使它异步 – Yijinsei 2010-06-16 01:48:33