我们正在开发一个Spring Batch应用程序,该应用程序将来将处理“大”文件。为了保持低内存签名,我们在这些文件的最小可能块上使用了spring batch。
经过处理后,我们希望将结果写回到SFTP
,这也会在输入文件的每个块中发生。
当前方法如下:
StepExecutionListener.before()
:我们使用SftpOutboundAdapter
和空有效负载向FileExistsMode.REPLACE
发送消息以创建一个空文件(使用.writing
)
Reader
:将读取输入文件
Processor
:将使用结果增强输入并返回字符串列表
Writer
:将带有SftpOutboundAdapter
的字符串列表发送到另一个FileExistsMode.APPEND
StepExecutionListener.after()
:如果执行成功,我们将重命名该文件以删除后缀.writing
。
现在我看到有Streaming Inbound Adapters
,但找不到Streaming Outbound Adapters
。
这真的是通过附加解决问题的唯一/最佳方法吗?还是可以流式传输文件内容?