我有一个REST API,它在后端必须调用异步任务。此任务将向第三方网址发布消息。我想把这个任务保存到一个线程池中,并且需要300个任务/秒的性能。我使用了一个每个路由有50个连接的HttpClient池,每个使用HttpClient的线程可以在一秒内完成5个任务。所以我保持> 60线程来实现我的目标。这种方法是否正确?Web应用程序中异步任务的线程池配置
2
A
回答
0
如果你有更多的任务做异步记录,数据库条目等,然后让一个类来完成它们,使用线程池执行器并测试它。保持初始线程和最大线程的数量是可配置的,因为开发,测试和现场环境中的结果会有所不同。还可以使用http客户端功能优化网络部分。
像PoolingHttpClientConnectionManager http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/conn/PoolingHttpClientConnectionManager.html
所以真的是你需要使用一个线程池和optomize内的网络部分。后来如果你的数据库动作也可以分别选择这些动作。
TheadPoolExecutor的javadoc有一些指针http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html
这consrtructor似乎给大多数选项调整和处理情况下,如果队列溢出
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)
相关问题
- 1. 控制台应用程序中的异步任务/线程
- 2. 异步使用线程池?
- 3. Java中的异步任务Web应用程序
- 4. 异步任务线程源
- 5. 异步执行Web应用程序的任务
- 6. 使用工作线程或线程池线程异步I/Web应用程序Ø
- 7. 爪哇 - 异步 - 线程池
- 8. 线程池,多线程,异步等。我应该使用什么?
- 9. 如何使用异步线程调整/分析线程池配置?
- 10. Python中的异步性和线程池
- 11. 使用Web Service避免线程的并行(异步)任务
- 12. Android服务/异步任务/线程
- 13. 为Spring引导异步TaskExecutors配置线程池?
- 14. 等待从UI线程退出应用程序的异步任务
- 15. iPhone应用程序中的异步与同步与线程
- 16. 任务vs线程池
- 17. Spring Boot异步请求处理任务执行程序配置
- 18. 安卓:异步任务与线程
- 19. 使RxJava异步任务线程安全
- 20. Android线程和异步任务
- 21. Android应用程序中的多个异步任务
- 22. .NET线程池工作线程和异步IO线程
- 23. 在Windows Store应用程序中调用异步任务?
- 24. 多线程Web应用程序与多线程Web服务器
- 25. IIS应用程序池:列表配置
- 26. java中的Web应用程序配置
- 27. Web应用程序中的Log4j2配置
- 28. .NET线程池和配置
- 29. 线程池配置问题
- 30. AKKA线程池配置
我认为下面可能是有用的http://stackoverflow.com /问题/ 4851535/HTTP的连接池,使用-的HttpClient – user2793390