Есть ли способ ограничить количество экземпляров File Handler? - PullRequest
0 голосов
/ 06 марта 2019

У меня есть компонент, который использует интегрированную среду Spring для интеграции файлов, чтобы запускать процесс каждый раз, когда файл поступает в определенное место.По файлам журнала я вижу, что запущены два потока / процесса / экземпляра.Есть ли способ ограничить его одним?

Второй процесс / поток запускается почти сразу после первого, и они мешают друг другу.Первый экземпляр обрабатывает файл, но затем второй пытается сделать то же самое и вызывает исключение filenotfound, потому что первый переместил его.

1 Ответ

0 голосов
/ 06 марта 2019

Прежде всего, вам необходимо сконфигурировать средство опроса для вашего файлового адаптера входящего канала с fixedDelay вместо fixedRate.Таким образом, следующая задача опроса не будет запущена до конца предыдущей.

Также рассмотрите возможность использования некоторых filter, чтобы не обрабатывать тот же файл снова.Не уверен, каков ваш вариант использования, но простого AcceptOnceFileListFilter должно быть достаточно.Для удобства в канальном адаптере предусмотрена опция prevent-duplicates.

См. Дополнительную информацию в Справочном руководстве: https://docs.spring.io/spring-integration/docs/current/reference/html/#files

А также о поведении устройства опроса: https://docs.spring.io/spring-integration/docs/current/reference/html/#channel-adapter-namespace-inbound

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...