动态创建MSMQ侦听器的最佳方法是什么?
时间:2020-03-06 14:33:37 来源:igfitidea点击:
我在应用程序启动时使用Spring.NET创建消息侦听器。现在,我需要具有创建0-n侦听器的功能,其中一些侦听器可能正在侦听不同的队列。我将需要能够在运行时创建/销毁它们。这样做的最佳方法是什么?我以前的spring配置是这样的:
<objects xmlns="http://www.springframework.net"> <object id='inputQueue' type='Spring.Messaging.Support.MessageQueueFactoryObject, Spring.Messaging'> <property name='Path' value='.\Private$\inputQueue'/> </object> <!-- MSMQ Transaction Manager --> <object id="messageQueueTransactionManager" type="Spring.Messaging.Core.MessageQueueTransactionManager, Spring.Messaging"/> <!-- Message Listener Container that uses MSMQ transactional for receives --> <object id="transactionalMessageListenerContainer" type="Spring.Messaging.Listener.TransactionalMessageListenerContainer, Spring.Messaging"> <property name="MessageQueueObjectName" value="inputQueue"/> <property name="PlatformTransactionManager" ref="messageQueueTransactionManager"/> <property name="MaxConcurrentListeners" value="10"/> <property name="MessageListener" ref="messageListenerAdapter"/> </object> <!-- Adapter to call a PONO as a messaging callback --> <object id="messageListenerAdapter" type="Spring.Messaging.Listener.MessageListenerAdapter, Spring.Messaging"> <property name="HandlerObject" ref="messageListener"/> </object> <!-- The PONO class that you write --> <object id="messageListener" type="Com.MyCompany.Listener, Com.MyCompany"> <property name="Container" ref="transactionalMessageListenerContainer"/> </object> </objects>
我是否需要以编程方式每次需要新的侦听器时执行此文件的操作?我不应该为此使用Spring.NET的消息传递框架吗?
解决方案
如果像我们已经说过的那样谨慎地使用Spring.NET(即消息传递,ADO.NET帮助器等),我将以编程方式进行。然后将新图添加到我现有的容器中。这样,Spring.NET仍然可以为我管理生命周期。