2010-06-16 101 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