簡體   English   中英

從Java Servlet調用線程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM