2012-07-17 107 views
1

我們有一個每分鐘調用一次servlet的頁面。這個servlet連接到另一個網站以獲得一些數據,處理這些數據,然後通過response.getWriter()方法發送響應。如何自動調用沒有頁面請求的servlet/class/method?

如果有兩個不同的用戶同時訪問該頁面,則會向同一個servlet發出兩個請求。雖然仍然只有一個servlet實例,但會有兩個進程(可能在兩個不同的線程上)嘗試連接到另一個網站。

我們想要的是讓另一個類/方法/ servlet連接到另一個網站,處理數據,然後將其保存到緩存/會話中。這個類/方法/ servlet必須每分鐘調用/調用一次,這樣當從頁面調用第一個servlet時,它只會從緩存/會話中獲取數據,而不會嘗試連接到網站。我們如何實現這一點? (問題在於如何自動每分鐘調用/調用新的類/方法/ servlet而不必從頁面發出請求)

回答

2

創建一個讀取外部網頁的計劃任務(使用Jsoup可以更輕鬆地訪問)以及讀取數據到​​Map和Servlet的,你可以只讀取應用範圍

getServletContext().getAttribute("dataMap"); 

了Map和讀取數據也

+0

謝謝。現在我知道我在找什麼,「計劃任務」。但我如何實現它?展望[鏈接](http://stackoverflow.com/questions/2248971/running-periodic-task-at-server-side-for-servlet-jsp-mvc-website) – CodeAssasin 2012-07-17 05:15:12

+0

是的,該鏈接描述得很好 – 2012-07-17 05:15:58

1

您必須創建一個計劃任務要完成這一點,時間間隔這個時間表任務將是1分鐘。

相關問題