我有一個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