我是Spring Integration的新手。彈簧集成2與石英調度器
我已經配置了Spring文件入站通道適配器,例如,
<file:inbound-channel-adapter channel="channel1" directory="${location}" prevent-duplicates="true" filename-pattern="*.csv">
<si:poller>
<si:interval-trigger interval="1000"/>
</si:poller>
</file:inbound-channel-adapter>
<si:service-activator input-channel="channel1" output-channel="channel2" ref="filenameGenerator" method="generate"/>
現在這工作正常。 但是這需要部署在集羣環境中。我想確保羣集中的多個實例不會嘗試讀取同一個文件。那麼這樣的工作會在這樣的環境下進行?
如果沒有,我可以使用Quartz調度這樣的:
<file:inbound-channel-adapter channel="channel1" directory="${location}" prevent-duplicates="true" filename-pattern="*.csv">
<si:poller task-executor="taskExecutor" fixed-rate="1000"/>
</file:inbound-channel-adapter>
<si:service-activator input-channel="channel1" output-channel="channel2" ref="filenameGenerator" method="generate"/>
<bean id="taskExecutor" class="org.springframework.scheduling.quartz.SimpleThreadPoolTaskExecutor">
<property name="threadCount" value="20"/>
<property name="threadNamePrefix" value="consumer"/>
</bean>
將這項工作與解決我的問題? 或者我必須使用交易?
我希望問題很清楚。
感謝, 阿迪
再次重申這個問題, 問題是與文件在集羣環境中入站通道適配器。當一個文件被放置在一個文件夾中時,它應該被拾取,處理並最終重命名它。 在羣集中,雖然一個實例選取特定文件並仍在處理它,但另一個節點的文件適配器也會啓動並嘗試處理。第二個適配器失敗,出現文件未找到異常,作爲第一個適配器進程並在此期間重命名。那麼,我能做些什麼,這不會發生? – adi 2012-01-17 16:34:04