如何用J2EE应用程序实现异步处理

Kei*_*osh 3 java asynchronous jms

我有一个企业应用程序,每天有大约2k并发用户.这些用户处理客户呼叫,因此应用程序速度至关重要.

当用户结束通话时,他们会提交他们捕获的所有信息.此提交可能需要10-45秒.

我正在研究如何延迟远离用户.

我们有一个在IE中运行的Web前端,后端是在单个EJB上运行的重型Java.

我想让这个提交过程异步,因为一旦用户提交请求,他们就不必等待提交完成,然后再转到下一个客户.这是目前实施的.

最初我在考虑生成另一个线程来处理提交,但这对于EJB来说是不行的.

我能想到的其他选择是使用JMS或SIB,

最好的解决方案是什么?我还缺少另一种选择吗?

kgi*_*kis 7

对于这样的案例,实际上有两种选择.

  • 第一个是使用JMS.它的优点是服务器提供了所有必需的基础结构,而您自己也没有多少实现.
  • 另一种方法是在数据库中注册请求,并有一个预定的事件来处理所有这些请求.

您选择的内容取决于您的要求.如果您需要在请求到达后立即提供服务,那么您需要使用JMS.在这两种情况下,您都需要在数据库中保留请求的结果,并在其顶部设计Web服务.前端可以使用它(通过轮询)将结果呈现给用户.