我正在根據(jù)數(shù)據(jù)庫中的數(shù)據(jù)創(chuàng)建動態(tài)集成流。我們需要使用文件名模式輪詢的目錄在數(shù)據(jù)庫中例如Instance, directory , filename ABC , c:/input1 , test.txtDEF , d:/input2 , fresh.xlsx我有大約 200-300 個條目,所以我正在為每條記錄創(chuàng)建集成流,因為它將有不同的處理器等對于每條記錄 IntegrationFlowBuilder flowBuilder = IntegrationFlows .from(new CustomFileReadingSource(input), consumer); flowBuilder.transform(new ObjectToJsonTransformer()); flowBuilder.handle(o -> { // System.out.println(o.getPayload()); });context.registration(flowBuilder.get()).register();一旦所有這些都注冊了,但是當我查看 VisualVM 或日志時,我只看到 8-10 個線程,而不是 100 或 200 個。從日志2018-11-13 16:00:41.399 [task-scheduler-3] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32) 2018-11-13 16:00:41.587 [task-scheduler-10] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32)2018-11-13 16:00:41.807 [task-scheduler-4] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32) 2018-11-13 16:00:42.071 [task-scheduler-5] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32) 2018-11-13 16:00:42.323 [task-scheduler-7] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32) 2018-11-13 16:00:42.569 [task-scheduler-6] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32) 2018-11-13 16:00:42.878 [task-scheduler-8] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32) 2018-11-13 16:00:43.197 [task-scheduler-9] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32) 2018-11-13 16:00:43.588 [task-scheduler-1] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32) 2018-11-13 16:00:43.951 [task-scheduler-2] INFO c.b.m.p.f.b.LoggerSourceAdvisor.afterReceive(32) 如您所見,它只有少數(shù)線程輪詢線程有人可以幫助為什么它不創(chuàng)建線程或任何更好的方法來實現(xiàn)并行輪詢器嗎?
2 回答

慕雪6442864
TA貢獻1812條經(jīng)驗 獲得超5個贊
這是正確的。因為所有Polling Ednpoints
都基于預定義的全局ThreadPoolTaskScheduler
,10
默認為池大小:https ://docs.spring.io/spring-integration/docs/5.1.0.RELEASE/reference/html/configuration.html#namespace-taskscheduler
另一方面,嘗試擁有 100 個線程同時您的 CPU 最多為 16 個內(nèi)核是毫無意義的。創(chuàng)建更多線程甚至可能導致應用程序變慢。
添加回答
舉報
0/150
提交
取消