Компонент Camel File - в чем разница между IdempotentRepository и InProgressRepository

В чем именно разница между IdempotentRepository и InProgressRepository? У меня есть следующие определения со страницы на странице компонента File:

  • IdempotentRepository: возможность использовать шаблон Idempotent Consumer EIP, чтобы позволить Camel пропускать уже обработанные файлы
  • InProgressRepository: текущий репозиторий используется для учета текущих используемых файлов в процессе.

Для меня это те же определения, только немного по-другому сформулированные. Они также могут использовать один и тот же идемпотентный репозиторий.

Я немного запутался, мне нужно и то, и другое? Или достаточно хорош idempotentRepository?


person bramdc    schedule 16.11.2020    source источник


Ответы (1)


Прежде чем читать информацию ниже, убедитесь, что вы прочитали и поняли концепцию .


IdempotentRepository - место, используемое для хранения кеша уже обработанного файла (т.е. файлы были использованы и обработаны вашим маршрутом). Используется при проверке идемпотентности.

InProgressRepository - место, используемое для хранения кеша текущего выполняемого файла (т.е. файлов, которые будут использоваться в текущем пакете). Всегда используется для потребителя файлов.

IMO, всегда нужен InProgressRepository и с настройкой по умолчанию (репозиторий на основе памяти) в целом. IdempotentRepository может понадобиться, если требуется свой собственный идемпотент настройка (на основе файлов, JPA-based, ...) против перезапуска приложения.

person hk6279    schedule 17.11.2020
comment
Это намного лучше объяснено! Но все же есть некоторые вопросы: будут ли 2 файловых компонента сначала проверять InProgressRepository, чтобы узнать, использует ли уже файл другой файловый компонент (конечно, только если это общий репозиторий)? Какова тогда цель идемпотентного InProgressRepository? - person bramdc; 18.11.2020
comment
Никогда не изменяйте настройку InProgressRepository, возможно, вам придется протестировать ее самостоятельно, выполнить поиск в Интернете или задать другое сообщение. - person hk6279; 18.11.2020