У меня есть конечная точка удаления файла, с которой я опрашиваю. Мне нужно опрашивать файлы в последовательном порядке по мере их поступления, и я использую выражение cron для опроса только в определенные часы дня. Вот мой файл ввода:
file:///tmp/input?idempotent=true&moveFailed=/tmp/error&readLock=changed&readLockCheckInterval=2500&sortBy=file:modified&move=processed/&scheduler=quartz2&scheduler.cron=0+0/5+0-3,5-23+*+*+?
Проблема, с которой я столкнулся, заключается в том, что Camel опрашивает пакет файлов, но затем в каталог записываются более новые файлы, поэтому при последующем опросе новый файл обрабатывается до завершения предыдущего пакета.
Я добавил некоторые свойства в свой маршрут, чтобы показать размер пакета и был ли он завершен только для некоторой информации:
<camel:log message="Camel batch size: $simple{property.CamelBatchSize}, Camel Batch Index: $simple{property.CamelBatchIndex}, Camel Batch finished: $simple{property.CamelBatchComplete}"/>
Как я могу сказать Camel не опрашивать, пока предыдущая партия не будет завершена? Я делаю это потому, что важен порядок обработки файлов. Спасибо!