我是Spring Integration的新手。
我配置了一个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>
这个方法能解决我的问题吗?还是我必须使用事务(Transaction)?
希望我的问题表述清楚了。
谢谢, Adi