我正在寻找一种好的技术建议,将文件发布到弹簧集成队列中,然后逐行拆分以进行进一步处理。诀窍是文件可能非常大,我不想将其读入内存。
我正在考虑使用带有POST的HTTP入站适配器,但我不确定如何在不首先读取整个内容的情况下将有效负载转移到集成流程。
目前我正在使用MVC控制器,将其保存到临时文件并逐行读取,然后将每行传递到网关。如果可能的话,我想在Spring集成中完全做到这一点。
答案 0 :(得分:0)
您无法使用标准适配器。
可能最简单的实现方法是使用messaging gateway将自定义控制器作为消息流入SI流。
答案 1 :(得分:0)
<int-http:inbound-gateway>
支持注入message-converters
。其中一个可以是MultipartAwareFormHttpMessageConverter
,您可以使用MultipartFileReader
实现注入。MultipartFile#getInputStream()
。那个人可以返回FileSplitter
。
最后一个可以使用自Spring Integration 4.1
以来可用的A$fun <- mean
Mosaic <- do.call(mosaic, list(A,na.rm=T))
来逐行读取流。