Доступ к блокировке файла Spring batch integration

#spring #spring-integration #spring-batch

#spring #spring-интеграция #spring-batch

Вопрос:

У меня есть пакетное интегрирование spring, в котором несколько серверов опрашивают один каталог файлов. Это вызывает проблему, когда файл может быть обработан более чем одним. Я попытался добавить nio-lock в файл, как только сервер получил его, но это блокирует файл для обработки, поэтому он не может прочитать содержимое файла.

Существует ли пакетное / интеграционное решение spring для этой проблемы или есть способ переименовать файл, как только он будет получен узлом?

Ответ №1:

Рассмотрите возможность использования FileSystemPersistentAcceptOnceFileListFilter с общим MetadataStore : http://docs.spring.io/spring-integration/reference/html/system-management-chapter.html#metadata-store

Таким образом, только один экземпляр вашего приложения сможет получить файл.

Даже если мы найдем решение для nio-lock , вы должны понимать, что блокировка означает «не трогать, пока не освободится». Поэтому, когда один экземпляр выполнил свою работу, другой готов забрать файл. Я думаю, это не ваша цель.

Комментарии:

1. Спасибо, Артем, я рассмотрю возможность использования этого.