рассмотрите возможность использования блокировки файлов вместо переименования. Вот соответствующая часть из 13.2 Reading Files
пружинной интеграции документации:
Когда несколько процессов читают из одного каталога, может быть желательно заблокировать файлы, чтобы предотвратить их одновременный захват. Для этого вы можете использовать FileLocker. Существует готовая реализация на основе java.nio, но также возможно реализовать собственную схему блокировки. Шкафчик nio может вводиться следующим образом:
<int-file:inbound-channel-adapter id="filesIn"
directory="file:${input.directory}" prevent-duplicates="true">
<int-file:nio-locker/>
</int-file:inbound-channel-adapter>
Пользовательский шкафчик, который вы можете настроить следующим образом:
<int-file:inbound-channel-adapter id="filesIn"
directory="file:${input.directory}" prevent-duplicates="true">
<int-file:locker ref="customLocker"/>
</int-file:inbound-channel-adapter>
[Примечание]
Когда для входящего в файл адаптера настроен блокировщик, он берет на себя ответственность за блокировку до того, как файл будет разрешен к приему. Он не будет нести ответственность за разблокировку файла. Если вы обработали файл и держите замки, у вас есть утечка памяти. Если это проблема в вашем случае, вы должны сами вызвать FileLocker.unlock (File file) в соответствующее время.
Для получения дополнительной информации см. Документы для Интерфейс FileLocker и Класс NioFileLocker .