0

我正在编写在 TomCat.7 上运行的 Spring Web 应用程序,其中一项功能是使用 java.concurrency 处理来自 db 的数据。

由于计算,我希望数据库处理将是一个非常耗时的处理,并且我需要此过程的高性能。

我的问题是在 TomCat 容器中运行该线程是否是个好主意(或者可能是唯一的可能性)?

@RequestMapping(value = "run_process", method = RequestMethod.GET)
    public RequestWrapper runProcess(ModelMap model) {

        Runnable runCrawler = new Crawler();
        runCrawler.run();
        System.out.println("##run_process!");

        return new RequestWrapper();
    }

我的项目结构是这样的:

-src
-com.scanner.batchprocess
-com.scanner.crawler
-com.scanner.webapp.controllers

我在创建计算上具有挑战性的程序方面没有任何经验,所以我担心也许我应该创建一个新的干净的 java 项目,主类将在用户运行 BatchProcess 时从 webapp 调用。来自 Tomcat 的执行时间应用程序与真正的 java 应用程序的时间差异是否很大?

4

1 回答 1

1

您的理想选择是 Spring Batch。它具有批处理所需的所有功能。它易于学习、理解和配置。您可以通过引入线程和其他众多缩放机制来在 Spring Batch 中进行性能调整,请参阅http://www.mkyong.com/tutorials/spring-batch-tutorial/ 有很好的例子

于 2013-09-28T21:22:33.667 回答