spring - Web 应用程序中的多线程和并行处理 - 需要建议

标签 spring multithreading parallel-processing spring-batch

问题:在 Web 应用程序中,我们必须调用输入为 N(100) 数字的 Web 服务,以便 Web 服务从队列中获取响应。一旦我得到 100 个响应,我必须将其分为 5 个线程,并为每个线程相应地划分此响应(每个 20 个)。 一旦线程处理完成,它应该再次调用Web服务。

我有一个网络服务,它会根据输入数字返回响应,但我不知道应该使用什么技术来实现其他部分。

我研究了以下内容:

  1. Spring 任务执行:http://static.springsource.org/spring/docs/3.0.x/reference/scheduling.html - 但这不适合,因为我无法指定需要启动多少个线程。

  2. 分区:第7.4节:http://static.springsource.org/spring-batch/reference/html/scalability.html - 我刚刚发现了这个,但之前没有使用过这个。

如果你们中的任何一个人能够引导我走向正确的方向,那就太好了。

这是我的第一篇文章,如果有任何错误,我深表歉意。

更新:11/21/2012:我已经使用 ThreadPoolTask​​Executor 实现了。我将在假期后发布我的代码片段。但让我烦恼的一件事是我必须将 100 个结果分成 20 个一组,并使用 taskExecutor.submit();在 For 循环中循环 5 次,这将创建 5 个线程。如果能有一种直接的方式来提交这 100 个请求并可以选择我想要生成的线程数量,那就太好了。

祝大家感恩节快乐。节假日后更新帖子

最佳答案

你可以尝试看看google guava是否适合http://code.google.com/p/guava-libraries/wiki/ListenableFutureExplained或者如果 http://akka.io/框架将适合您的需求。两者都可以轻松封装线程处理和回调实现。

关于spring - Web 应用程序中的多线程和并行处理 - 需要建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480909/

相关文章:

ios - 后台播种/加载 iOS 核心数据存储

c# - 静态方法线程安全吗

在 R 中并行运行 for 循环

python - 无法将函数并行映射到 tarfile 成员

Spring自定义AuthenticationFailureHandler

java - Intellij 如何使用 spring boot 正确配置 hql。现在我得到 Persistence QL Queries are error-checked

spring - 如何在 grails 中扩展 Spring Security 用户类?

java - CPU 密集型计算示例?

c++ - 哪个库用于迭代 1M*1k 次的并行 for 循环,OpenMP 或 boost::thread?

java - 如何将 application.yml 中的映射注入(inject)到 Spring Boot 中的字段中?