[英]struts2 long polling with jquery
我以前有使用PHP和jQuery進行長時間輪詢以檢查新的聊天消息的經驗。
想法是有一個while循環,檢查是否有新消息,如果是,則返回新消息,如果否,則休眠5秒鍾,然后再次檢查。
我想使用java struts2框架做同樣的事情。 我創建了一個具有while循環的動作類,該動作類執行相同的操作,並使用Thread.sleep()進行等待。
但是我遇到了很高的CPU使用率。 我做對了嗎? 抱歉,我現在沒有任何示例代碼,因為我使用了一種使用客戶端輪詢的簡單方法來重新設置了示例代碼。
幫助表示贊賞。
為什么不使用BlockingQueue? 我不理解為什么這與jQuery和長輪詢有任何關系。 這是服務器內部設計問題。
如果(盡管標題為jQuery,但您想用Java來做到這一點( “我想使用java struts2框架做同樣的事情。” ),則while循環不是一個好的解決方案 ;
相反,您應該使用java.util.Timer (/ TimerTask )。
請注意,在Struts2中,每個請求都會實例化一個Action,因此,如果在Action中創建一個Timer,並且有100個並發用戶,則有100個計時器正在運行。 最好從EJB使用它 。
看看這個SO答案:
1) Timer&TimerTask與Java中的線程+睡眠
在Javadoc上: Java EE 5教程-使用Timer服務
我的2分錢
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.