[英]Calling a thread from a Java servlet
我正在開發一個使用servlet來獲取和設置最終用戶使用的JSP數據的應用程序。 在將數據寫入數據庫之前或從數據庫中檢索之后,所有處於會話狀態的servlet都會對其進行操作。
但是,其中一些數據庫操作相當冗長,其中涉及大量的IO,包括動態創建表或將數據插入表等以及從中取回數據等。此過程還需要各種第三方產品,例如Weka和Lucene。 因此存在很大的處理器負載。 我希望其中一些可能需要一到兩分鍾的時間,然后鎖定會議。
servlet通常在類中為這些操作調用靜態方法,然后返回所需的數據類型。 所以這是我的問題; 這是明智的選擇,還是將這些操作實現為直接從Servlet調用的Java線程會更好,還是我需要線程管理器? 我是線程新手。
Servlet中上述代碼的示例如下:
// Create Data_Miner.
Data_Miner dm = Data_Miner_ReaderWriter.write(activeUser.getUser(), rssfodm);
// Create output.
if (rssfodm.getDataMinerOutputType() == Data_Miner_Output_Type.DECISION_TREE) {
Decision_Tree dt = Decision_Tree_ReaderWriter.write(dm);
這兩個方法調用都針對包含讀取/寫入相關對象的方法的類中的靜態方法。
謝謝
摩根先生。
使用異步處理以及諸如回調處理程序和郵箱之類的工具,用戶可以在准備就緒時返回並獲取結果。
由於使用的是Java,因此您還可以考慮使用JMS消息驅動的POJO(Spring)或EJB(EJB標准)來接受對運行時間更長的事務的請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.