2014-10-18 3 views
1

Насколько я знаю, обычное поведение автобусов, включая Rebus, создает новый обработчик для каждого сообщения, которое приходит и сопоставляется. Это нормально в большинстве случаев, но иногда есть дорогостоящие обработчики инициализации (потребуется для создания прокси-служб служб, соединений, загрузки объектов в кеш и т. Д.). Есть способ кэшировать эти обработчики, как только они создаются в первый раз, в идеале один экземпляр на одного работника, чтобы не создавать их снова и снова?Rebus и обработчики с дорогостоящей инициализацией/созданием

ответ

1

Если у вас есть что-то, что требует много времени для инициализации, я предлагаю вам использовать свой контейнер IoC для его инъекции, настройки образа жизни в соответствии с вашими потребностями - с помощью Castle Windsor, я обычно настраиваю дорогостоящие услуги, чтобы быть одиночными, если они реентерабельный или привязанный к текущему потоку, если это не так (что приведет к созданию одного экземпляра для рабочего потока Rebus).

Ваши варианты могут отличаться в зависимости от того, какой контейнер IoC вы используете, но все контейнеры должны быть в состоянии это сделать.

Смежные вопросы