如何以互斥方式运行两个入站适配器

时间:2014-10-21 14:10:03

标签: spring-integration

enter image description here我的SI应用程序中有两个inbound-channel-adapter,它们都提供相同的输出通道,然后通过一系列其他SI组件进行处理。

第一个适配器每10分钟运行一次,而第二个适配器基于事件运行,并且可以随时运行(实际上每100毫秒轮询新事件)。

我希望这两个适配器一次运行一个。因此,例如,如果第一个正在运行并且正在处理其输出,则第二个适配器应该等待第一个适配器(因此其事务)完成。 SI中是否有可用于实现此行为的内置机制?

1 个答案:

答案 0 :(得分:1)

您应该能够在<poller/>上使用任务执行程序,使用单个线程(例如,ThreadPoolTaskExecutor,池大小为1),并且其中包含CallerBlocksPolicy rejectedExecutionHandler,队列大小为1。

使用默认ABORT策略的队列大小为0也应该有效。