我試圖確定「批准」或最佳實踐方法,同時在Java EE環境中進行以下操作:客戶端在網頁上並單擊按鈕。這啓動了一個用於監視進程的線程,即數據庫活動,網絡等。此進程將繼續運行,直到用戶單擊一個指示進程結束的按鈕。其他客戶和/或同一個客戶然後點擊一個按鈕來收聽從該過程發送的狀態,該狀態將繼續收聽,直到用戶單擊一個按鈕停止收聽。Java EE和後臺線程
我已經通過使用WebSocket與一個servlet進行通信,該servlet獲得了一個注入了擴展WebSocketApplication的單例EJB。但是,這個EJB產生了進程線程來執行監控。雖然它是有效的,並且應該繼續工作,因爲它是一個單例,但它不是「批准」的方式。
我曾經討論過使用JMS來產生線程的一些建議,但除非我誤解了某些東西,否則這並不能解決任何問題,因爲消息驅動Bean不應該產生線程。那麼,這樣做的核準/最佳實踐方法是什麼?在Java EE環境中如何啓動和停止後臺進程?同樣,需求是,只有一個進程可以產生,它必須與所有在servlet中註冊的WebSockets進行通信,當告訴時它必須能夠死亡(儘管這並不意味着服務器關閉了套接字,因爲它可以開始備份並且仍然與所有先前註冊的客戶端通信)。
謝謝。