处理所有消息什么是它处理的是源于一系列的FTP出站网关ls
命令的所有消息后停止Spring集成应用的最佳方式后?停止Spring集成的应用程序从FTP列表
作为一次性的工作,我需要遍历一个FTP目录结构,递归找到的每个目录,并抄下每一个文件,然后把它作为信息进行处理。一旦FTP目录树已完全遍历,和所有由遍历产生的消息都已处理完毕,我想要优雅地停止应用程序。
我现在的想法是,我会尽量保持在网关和所有队列的活动轨迹,当他们都具有一个大小为0的同时,终止应用程序。通过执行这样的操作可以使得更复杂一些,如保持每个目录的所有文件的计数(这需要扩展AbstractRemoteFileOutboundGateway
),确保目录名保留在通过流的所有消息头中,然后具有下游组件保持每个目录处理的消息的计数,并且一旦它们全部被计入,就启动关闭。
这听起来像一个相当数量的工作 - 没有人知道一个简单的方法?我可以选择在没有Spring Integration的情况下编写应用程序,并手动执行繁重的工作(迭代FTP树,复制文件)或使用Spring Integration,但必须扩展它的某些部分以匹配我的用例。