我正在尝试每 24 小时读取 CVS 文件并将其插入数据库。我正在使用 Spring Schedular 并且它按预期工作,但是我的应用程序将部署在 3 个不同的 JVM 中,并且所有 JVM 将同时运行,所以有什么办法 schedular 只会为所有三个 JVM 运行一次,这样它每天只会插入一次数据。
<bean id="runMeTask"
class="com.fifththird.ebusiness.ivr.core.service.RunMeTask" >
<property name="dataSource" ref="DataSource"/>
</bean>
<bean id="schedulerTask"
class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean">
<property name="targetObject" ref="runMeTask" />
<property name="targetMethod" value="printMe" />
</bean>
<bean id="timerTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="schedulerTask" />
<property name="delay" value="1000" />
<property name="period" value="60000" />
</bean>
<bean class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref local="timerTask" />
</list>
</property>
</bean>
添加到上面的问题“如果在三个不同的 JVM 中部署的相同应用程序将调用 spring schedular ,那么代码将尝试每天三次插入数据。”