У меня есть один физический сервер, на котором работают два экземпляра Apache Camel. Оба содержат одинаковые артефакты интеграции. Задача состоит в том, чтобы интегрировать файлы из файловой системы сервера с файловым компонентом Apache Camel, запускаемым заданием cron. Обработка файла должна выполняться только один раз. Поэтому я использую идемпотентный шаблон с репозиторием Jdbc на том же сервере.
В целом работает нормально. Но иногда, в некоторых случаях, оба экземпляра запускают и читают файл, поэтому файл обрабатывается дважды. В базе данных JDBC ключ также вставляется дважды (даже метка времени создания почти такая же; она отличается на третьей цифре миллисекунд).
Вот как я использую потребителя файлов:
<from uri="file:{{property.file.directory}}?scheduler=quartz2
&;scheduler.cron={{property.file.cronjob}}?
&idempotent=true
&readLock=idempotent
&idempotentKey=${file:name}-${file:size}-${date:file:yyyy-MM}
&idempotentRepository=#idempotentRepository"/>
Кто-нибудь знает, что мне нужно, чтобы файл был готов только один раз ??
С уважением, Ян