Spring Integration轮询器多次启动相同的Spring Batch作业

时间:2015-01-20 14:14:58

标签: spring-batch spring-integration

我们的应用程序使用Spring Integration启动Spring Batch作业。

它的工作原理如下:

1)运行主应用程序类,这将加载Spring应用程序上下文。

2)Spring Integration bean配置为从文件系统读取文件,并将文件放在通道上。

<int-file:inbound-channel-adapter
   directory="${...}" channel="channel"
   filename-pattern="*.csv" auto-create-directory="false" prevent-duplicates="true">
   <int:poller fixed-delay="${...}"></int:poller>
</int-file:inbound-channel-adapter>

3)频道连接到@ServiceActivator bean。

<int:service-activator input-channel="channel" ref="launcher" />

4)Launcher bean从消息有效负载中获取文件,并启动Spring Batch作业。

问题是在poller fixed-delay时间结束后,将再次调用启动程序bean,并使用相同的参数启动新的作业。 这会引发JobInstanceAlreadyCompleteException

我没有看到告诉轮询者只运行一次。 有什么建议使用Spring Integration和Spring Batch来避免这个问题?

由于

0 个答案:

没有答案