У меня есть один физический сервер, на котором работают два экземпляра Apache Camel. Оба содержат одинаковые артефакты интеграции. Задача заключается в интеграции файлов из файловой системы сервера с файловым компонентом Apache Camel, запускаемым заданием cron. Обработка файла должна выполняться только один раз. Поэтому я использую идемпотентный шаблон с репозиторием Jdb c на том же сервере.
В целом он работает нормально. Но иногда, в некоторых случаях, оба экземпляра запускают и читают файл, поэтому файл обрабатывается дважды. В базе данных JDB C ключ также вставляется дважды (даже метка времени создания почти такая же; она отличается на третьем ди git миллисекундах).
Вот как Я использую потребителя файла:
<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"/>
Кто-нибудь знает, что мне нужно, чтобы файл был готов только один раз ??
С уважением, ian