處理所有消息什麼是它處理的是源於一系列的FTP出站網關ls
命令的所有消息後停止Spring集成應用的最佳方式後?停止Spring集成的應用程序從FTP列表
作爲一次性的工作,我需要遍歷一個FTP目錄結構,遞歸找到的每個目錄,並抄下每一個文件,然後把它作爲信息進行處理。一旦FTP目錄樹已完全遍歷,和所有由遍歷產生的消息都已處理完畢,我想要優雅地停止應用程序。
我現在的想法是,我會盡量保持在網關和所有隊列的活動軌跡,當他們都具有一個大小爲0的同時,終止應用程序。通過執行這樣的操作可以使得更復雜一些,如保持每個目錄的所有文件的計數(這需要擴展AbstractRemoteFileOutboundGateway
),確保目錄名保留在通過流的所有消息頭中,然後具有下游組件保持每個目錄處理的消息的計數,並且一旦它們全部被計入,就啓動關閉。
這聽起來像一個相當數量的工作 - 沒有人知道一個簡單的方法?我可以選擇在沒有Spring Integration的情況下編寫應用程序,並手動執行繁重的工作(迭代FTP樹,複製文件)或使用Spring Integration,但必須擴展它的某些部分以匹配我的用例。