Я думаю, вы не можете использовать поле заголовка сообщения для настройки Resequencer , потому что маршрут является своего рода «статическим», в то время как заголовок сообщения является значением времени выполнения, которое может изменяться для каждого сообщения.
Что должно произойти, если партия собрала 50 сообщений, а следующая устанавливает размер партии равным 10?
Однако, несмотря на мои сомнения, BatchProcessor Camel (Resequencer расширяет BatchProcessor) знает Свойство Exchange с именем Exchange.BATCH_SIZE
.
Не знаю, работает ли это, но вы можете попробовать и
- Установить размер пакета по умолчанию в маршруте (начальное значение)
- Установить ExchangeСвойство для текущего сообщения всякий раз, когда вы хотите изменить размер пакета.Очевидно, перед отправкой сообщения в Resequencer.
Установите свойство Exchange
.setProperty(Exchange.BATCH_SIZE, "yourValue")
или если вы хотите взять значение из заголовка вашего сообщения
.setProperty(Exchange.BATCH_SIZE, header("yourHeaderName"))