Java 从Apache ServiceMix中启动长时间运行的进程

Java 从Apache ServiceMix中启动长时间运行的进程,java,multithreading,apache-servicemix,Java,Multithreading,Apache Servicemix,我正在寻找建议或想法 有一个外部进程(甚至是浏览器)需要通过简单的web服务调用触发一个长时间运行的进程,理想情况下,该调用应该运行在与该web服务相同的容器中。我们正在使用ApacheServiceMix。web服务本身不应该在长时间运行的过程中保持活动状态,而且它可能只是超时,所以我们希望它几乎立即正常返回响应 最初,我考虑使用ProcessBuilder()启动长时间运行的流程,作为另一个应用程序,但这样做会引入某些操作系统依赖项,而且看起来似乎不是那么理想的做法。我们考虑的一个选项是从请

我正在寻找建议或想法

有一个外部进程(甚至是浏览器)需要通过简单的web服务调用触发一个长时间运行的进程,理想情况下,该调用应该运行在与该web服务相同的容器中。我们正在使用ApacheServiceMix。web服务本身不应该在长时间运行的过程中保持活动状态,而且它可能只是超时,所以我们希望它几乎立即正常返回响应

最初,我考虑使用ProcessBuilder()启动长时间运行的流程,作为另一个应用程序,但这样做会引入某些操作系统依赖项,而且看起来似乎不是那么理想的做法。我们考虑的一个选项是从请求启动另一个线程,让请求立即完成,并给出响应,而长时间运行的线程将根据需要继续运行。我担心容器上的资源被劫持,以及长时间运行的线程在其启动器/父线程退出时失去对长时间运行的子线程的任何引用时的健康状况

如果有人对如何优雅地解决这个问题有什么好的想法,请告诉我


多谢各位

我在这里猜测,因为您没有提供servicemix的版本。尽管使用servicemix附带的Camel,我有两条路线,第一条路线提供web服务,第二条路线执行长时间运行的流程。第二条路线应使用seda组件。这将为您提供异步调用