Мы разрабатываем весеннее пакетное приложение, которое будет обрабатывать «большие» файлы в будущем. Чтобы поддерживать низкую сигнатуру памяти, мы используем подпружиненный пакет для наименьших возможных кусков этих файлов.
После обработки мы хотим записать результат обратно в SFTP
, что также происходит в каждом фрагменте входного файла.
Текущий подход выглядит следующим образом:
StepExecutionListener.before()
: мы отправляем сообщение на SftpOutboundAdapter
с FileExistsMode.REPLACE
и пустой полезной нагрузкой, чтобы создать пустой файл (с .writing
)
Reader
: будет читать входной файл
Processor
: улучшит ввод с результатами и вернет список строк
Writer
: отправит список строк другому SftpOutboundAdapter
с FileExistsMode.APPEND
StepExecutionListener.after()
: В случае успешного выполнения мы переименуем файл, удалив суффикс .writing
.
Теперь я увидел, что есть Streaming Inbound Adapters
, но я не смог найти Streaming Outbound Adapters
.
Это действительно единственный / лучший способ решить это путем добавления? Или есть возможность потоковой передачи содержимого файла?