Я хочу использовать какой-то механизм, чтобы сделать что-то вроде этого - у меня есть сервер приложений, получающий запрос на обработку заказов. Один запрос может иметь один заказ или два заказа. Чтобы обработать заказ, приложение должно позвонить внешнему поставщику, поставщик может обработать не более 5 заказов одновременно. Я хочу создать компонент, который будет пакетировать максимум до 5 заказов, если он доступен, и выполнить один запрос поставщику, а затем, когда я получу ответ, перераспределить ответ на соответствующий запрос. Компонент будет ждать, скажем, 2 секунды, прежде чем запустить пакетный запрос в тот момент, когда поступит первый запрос.
Я думал об использовании JMS, но в JMS потребитель обрабатывает сообщение (заказ), как только оно приходит, и потребитель обрабатывает по одному сообщению за раз. Я имею в виду использование обычной очереди (ArrayBlockingQueue) и пакетных заказов до запуска с использованием ScheduledTimerTask. У кого-нибудь есть идеи - Заранее спасибо.