multithreading - Java EE 响应客户端但继续处理

标签 multithreading jakarta-ee

我最近刚刚开始使用 Java EE 来构建 Web 服务。 其中大多数都非常简单,因为它们收到请求,做一些工作,然后返回结果。一旦结果返回给客户端,它就终止了。

现在我需要能够响应客户端,以表明它的请求已被接收并且正在处理,但我不想在发送请求后结束 webservice 线程。我需要它在响应后进行一些处理,例如向其他网络服务发送请求。然后客户端将定期轮询以获得结果。这将由另一个 Web 服务调用线程处理。

我不确定这在 Java EE 中是否可行。我通常只使用 TCP 套接字的 xml 来完成此操作。

最佳答案

从 Java EE 6 开始,可以将 EJB 的方法定义为异步:请参阅 Asynchronous Method Invocation 。因此,您的例程将从处理 Web 服务的 Bean 中调用异步 Bean,以触发冗长进程的开始,并返回到客户端。然后,您可以通过不同的 Web 服务方法查询此过程的结果。

在 Java EE 5 中,也可以使用 timer tasks ,但不是直接使用。然而,不可能自动查询此类任务的结果,因此您必须对其进行设计,以便将其状态保存在数据库中,以便另一个 bean 可以从数据库中读取它。

关于multithreading - Java EE 响应客户端但继续处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177402/

相关文章:

c++:自旋锁或互斥比较(简单计算)

c# - 无限while循环问题

java - 向在 tomcat 上运行的 webapp 发送命令

java - @PostConstruct 与 Jersey 1.17、Weblogic 一起使用

java - 多线程写入多个文件,但是会互相影响

java - 在单独的线程中运行一个进程,以便 Java FX 应用程序的其余部分可用?

c# - 如何判断子线程是否完成

java - weblogic服务器发布失败

java - JSP - session 属性 null 中的 ArrayList

tcp - 应用程序级校验和,因为 tcp 校验和可能太弱了?