【问题标题】:User initiated background process in a web applicationWeb 应用程序中用户启动的后台进程
【发布时间】:2009-10-08 15:11:37
【问题描述】:

我有一个在 Tomcat 上使用 Spring 连接的 java Web 应用程序。

我需要一种方法让用户在服务器中启动后台进程并向用户返回响应,而无需等待后台进程完成。

后台进程是用 java 编程的,并与我的应用程序集成。

因为我使用的是 tomcat,所以 JMS 不是一个选项。为了可移植性,我宁愿不必自定义我的 tomcat 安装。

我可以使用 Quartz 或类似的工具,并定期检查进程是否应该运行,但我更喜欢立即启动的东西。

我尝试生成一个新线程,但它不知道我的 Spring bean。

最好的方法是什么?

谢谢

最大

【问题讨论】:

    标签: java spring tomcat multithreading background


    【解决方案1】:

    Spring 为这类事情提供了TaskExecutor 抽象,它带有十几种不同的实现供您选择(ThreadPoolTaskExecutor 可能是您想要的)。您可以正确使用它,以便任务在运行时可以访问 Spring 上下文。

    【讨论】:

      【解决方案2】:

      这对于 Ajax 请求来说听起来很典型。 :-)

      您的浏览器不会等待结果...

      【讨论】:

        【解决方案3】:

        您可以只触发一个普通的旧 Java 线程。

        【讨论】:

        猜你喜欢
        • 2019-10-13
        • 2019-01-30
        • 2013-05-21
        • 2012-11-10
        • 1970-01-01
        • 2018-06-17
        • 1970-01-01
        • 1970-01-01
        • 2018-04-19
        相关资源
        最近更新 更多