如何编写从tomcat运行的java批处理程序

如何编写从tomcat运行的java批处理程序,java,multithreading,performance,spring,tomcat,Java,Multithreading,Performance,Spring,Tomcat,我正在编写运行在TomCat.7上的SpringWeb应用程序,其中一个功能是使用java.concurrency处理来自db的数据 由于计算的原因,我预计db处理将是一个非常耗时的过程,我需要这个过程的高性能 我的问题是,在TomCat容器中运行该线程是否是个好主意(或者可能是唯一的可能性) @RequestMapping(value = "run_process", method = RequestMethod.GET) public RequestWrapper runProces

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

由于计算的原因,我预计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

我没有任何创建在计算上具有挑战性的程序的经验,所以我担心我应该使用主类创建新的clean java项目,每当用户运行BatchProcess时,将从webapp调用该类。
Tomcat应用程序的执行时间可能比真正的java应用程序有很大的时间差异?

Spring batch是您的理想选择。它具有批处理所需的所有功能。而且它易于学习、理解和配置。您可以通过引入线程和其他许多扩展机制在spring批处理中进行性能调整。这里有一些很好的示例

谢谢,这非常有用