Как я могу создать динамический номер DefaultMessageListenerContainer MDPojos в Spring? - PullRequest
3 голосов
/ 15 октября 2010

Мне нужно создать переменное число из них на основе значения конфигурации, цель состоит в том, чтобы иметь несколько потребителей, каждый из которых соответствует физическому ресурсу, который может использоваться только одной вещью одновременно для обработки сообщения.

1 Ответ

2 голосов
/ 07 ноября 2010

Я реализовал контейнер, который управляет несколькими экземплярами DefaultMessageListenerContainer (s), которые он создает на основе прототипного экземпляра, если слушатель. На основе системного свойства (значение #) создается несколько слушателей, а очереди, которые они слушают, представляют собой числовое «my.Queue» + порядковый номер. Это, очевидно, может быть изменено, чтобы при необходимости искать имена очереди. При этом, это не динамически расширяющийся / сокращающийся список слушателей. Они создаются в начале, хотя я думаю, что вы можете использовать это в качестве отправной точки, чтобы сделать его более динамичным, если хотите.

Я написал довольно элементарный тестовый модуль и очень элементарную реализацию (многопоточность не учитывается), и, похоже, она работает.

Проект Maven можно скачать здесь - http://dl.dropbox.com/u/7812537/StackOverflowMultipleListeners.zip

Кстати - здесь есть интересная тема - http://forum.springsource.org/showthread.php?t=69604

Я думаю, что мог бы быть способ сделать это, расширив универсальную фабрику бобов, но я не уверен, каковы ваши требования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...