Проблема: прочитайте файл размером> 10 МБ и загрузите его в промежуточную таблицу с помощью Spring Batch. Как мы можем поддерживать состояние при чтении файла, чтобы перезапустить работу, если она не удалась?
В соответствии с документацией FileItemReader не является поточно-ориентированным, и если мы попытаемся сделать его поточно-безопасным, мы в конечном итоге теряем возможность перезапуска. Итак, основные вопросы:
- Есть ли способ прочитать файл в блоках, и каждый поток знает, какой блок ему нужно прочитать?
- Если мы сделаем чтение синхронным, какие изменения потребуются для перезапуска задания в этом сценарии?
Если кто-либо сталкивался с подобными проблемами или проанализировал, как он работает, это поможет нам принять решение.
Также приветствуются любые указатели или примеры кодов.