<int-file:inbound-channel-adapter
directory="#{dir}"
channel="inp" filename-regex="^.*.(xml|lst)$" prevent-duplicates="false">
<int:poller max-messages-per-poll="1" cron ="#{timer}"/>
</int-file:inbound-channel-adapter>
有没有办法在轮询器触发之前启动上述入站通道适配器?通常轮询器每天发射一次,但有时我需要根据用户的交互立即操作(当用户单击"开始"按钮时(
谢谢
费伦茨
供您参考:任何inbound-channel-adapter
都可以手动started/stopped
(您应该为该组件提供id
(。但我们应该明白,它还对我们没有帮助。因为任何活动都基于trigger
。
正如我看到您要求立即按用户事件开始轮询一样,因此您应该提供一些适当的Trigger
实现。 例如 OnlyOnceTrigger
我建议再添加一个具有相同选项和相同channel
的<int-file:inbound-channel-adapter>
,但使用该自定义触发器不要破坏您的cron
逻辑。该新<int-file:inbound-channel-adapter>
应标有auto-startup="false"
。用户start
按钮应该start()
该组件,是的,立即stop
。将启动单个轮询任务。
在这里,您应该考虑一些OnlyOnceTrigger
reset()
,以允许它在单击下一个按钮时启动新的轮询任务。
是的,您甚至可以实现一些复杂的Trigger
,包括cron
once
触发操作以避免更多的<int-file:inbound-channel-adapter>
,但这已经取决于您。