簡體   English   中英

如何用J2EE應用程序實現異步處理

[英]How to implement asynchronous processing with J2EE application

我有一個企業應用程序,每天有大約2k並發用戶。 這些用戶處理客戶呼叫,因此應用程序速度至關重要。

當用戶結束通話時,他們會提交他們捕獲的所有信息。 此提交可能需要10-45秒。

我正在研究如何延遲遠離用戶。

我們有一個在IE中運行的Web前端,后端是在單個EJB上運行的重型Java。

我想讓這個提交過程異步,因為一旦用戶提交請求,他們就不必等待提交完成,然后再轉到下一個客戶。 這是目前實施的。

最初我在考慮生成另一個線程來處理提交,但這對於EJB來說是不行的。

我能想到的其他選擇是使用JMS或SIB,

最好的解決方案是什么? 我還缺少另一種選擇嗎?

對於這樣的案例,實際上有兩種選擇。

  • 第一個是使用JMS。 它的優點是服務器提供了所有必需的基礎結構,而您自己也沒有多少實現。
  • 另一種方法是在數據庫中注冊請求,並有一個預定的事件來處理所有這些請求。

您選擇的內容取決於您的要求。 如果您需要在請求到達后立即提供服務,那么您需要使用JMS。 在這兩種情況下,您都需要在數據庫中保留請求的結果,並在其頂部設計Web服務。 前端可以使用它(通過輪詢)將結果呈現給用戶。

本來希望留下評論,但沒有能力。

另一種可能性

將重型EJB包裝在隊列機制中,並使用相同的API公開不同的bean,以便面向客戶端的通信與新bean通信並且快速。 他們接受請求,將作業添加到隊列並立即返回客戶端。 您不需要更改繁重的EJB或客戶端通信,只需將調解器放在路上,然后添加一層包裝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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