Java 如何在SpringHibernate中实现长时间运行的进程?
正如我们所知,struts拦截器execute and wait将处理长时间运行的进程,它不会让请求超时并破坏它发送的wait和最后所需的响应,我希望在spring和hibernate中为长时间运行的进程实现相同的功能。为了在请求的整个生命周期内保持会话打开,我们把它和风景联系起来。这可以通过使用Spring的或 视图中的open session筛选器将确保Hibernate会话在渲染视图之前一直保持打开状态 或 您可以将后端中的任务队列用于长时间运行的进程,如 工作队列(又称:任务队列)是为了避免立即执行资源密集型任务,并且必须等待任务完成。相反,任务被安排在以后完成。任务被封装为消息并发送到队列。后台运行的辅助进程将弹出任务并最终执行作业。当您运行多个Worker时,任务将在他们之间共享Java 如何在SpringHibernate中实现长时间运行的进程?,java,spring,hibernate,Java,Spring,Hibernate,正如我们所知,struts拦截器execute and wait将处理长时间运行的进程,它不会让请求超时并破坏它发送的wait和最后所需的响应,我希望在spring和hibernate中为长时间运行的进程实现相同的功能。为了在请求的整个生命周期内保持会话打开,我们把它和风景联系起来。这可以通过使用Spring的或 视图中的open session筛选器将确保Hibernate会话在渲染视图之前一直保持打开状态 或 您可以将后端中的任务队列用于长时间运行的进程,如 工作队列(又称:任务队列)是为了
这个概念在web应用程序中特别有用,因为在短的HTTP请求窗口中无法处理复杂的任务。我建议您使用Spring的DeferredResult。这是一个未来的实现,使用http长极化技术 假设您将发出一个请求,服务器将返回延迟的结果,然后您的请求将保持打开状态,直到内部进程(Hibernate)完成其任务。可在构造函数中配置超时
这里的另一个例子Struts简化了web应用程序的开发。您在这里寻找的是如何启动异步任务,这与struts完全无关。我建议你去看看。