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