2014-11-03 28 views
1

我有一個獨立的應用程序,它使用File inbound channel adapter以特定的時間間隔輪詢指定位置的文件。 我沒有定義taskScheduler實例。 當運行帶有Spring集成2.2.0和3.0.2的應用程序時,我發現在一段時間後有10個線程使用名稱task-scheduler-x創建。我相信這是默認行爲。默認taskScheduler Bean - Spring集成2.2.0與Spring 3.2.9的Vs 3.0.2

我從應用程序中刪除了文件入站通道適配器配置並重新運行它,我注意到了以下行爲。

在3.0.2中,使用名稱task-scheduler-x創建了10個線程。
在2.2.0中,儘管taskScheduler實例正在創建(我可以在日誌中看到關於創建bean的消息),但我沒有看到使用名稱task-scheduler-x創建的任何線程。

爲什麼這兩個版本之間的行爲不同?如果我不想創建taskScheduler實例或者我不想爲任務調度創建任何線程,該怎麼辦?

感謝您的幫助。

回答

1

該框架現在具有使用taskScheduler的內置組件(標題通道註冊表)。

它並沒有真正使用許多資源,儘管它具有實例化調度程序線程池的副作用。

如果您不需要/使用它,我們將添加一個選項來禁用它。在此期間,您可以通過添加這個bean對上下文恢復到前3.0行爲:

<bean id="integrationHeaderChannelRegistry" class="org.springframework.integration.channel.DefaultHeaderChannelRegistry"> 
    <property name="autoStartup" value="false" /> 
</bean> 

我打開這個JIRA Issue