处理超过10万条记录的数据

时间:2014-11-05 07:18:13

标签: java multithreading spring-mvc

我正在开发spring-mvc应用程序。

我需要处理超过10万条数据记录。而且我不能使它依赖于数据库,因此我必须在java中实现所有逻辑。

现在我正在创建线程数并为每个要处理的线程分配1000条记录。

我正在使用org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor

列出项目

问题:

  1. 我应该使用的建议线程数。
    • 我应该平均分配线程之间的记录数量还是
    • 我应该为每个线程提供预定义数量的记录并增加线程数吗?
  2. ThreadPoolTask​​Executor还可以,或者我应该使用别的东西?
  3. 我应该维护分配给java或数据库中每个线程的记录ID吗? (注意:如果使用数据库,那么我为每条记录进行了额外的数据库调用,并在处理完该记录后对其进行更新)
  4. 任何人都可以建议我在这种情况下的最佳做法。

    任何建议都会很棒。

    注意: 执行时间是主要问题。

    更新

    处理包括拥抱数量的数据库调用。 意味着您可以将其视为在java中完成的搜索。取一条记录,然后将该记录与db中的其他记录进行比较(在java中)。然后又拿另一条记录做同样的事。

2 个答案:

答案 0 :(得分:1)

为了处理大量数据,您可以使用Spring Batch框架 检查此Doc Wiki page

答案 1 :(得分:0)

ExecutorService应该没问题,不需要使用spring。但线程数将是一个技巧。我只能说,这取决于为什么不试着找出优化的数字?