@@ -33,9 +33,10 @@ public class EngineHostCompositionRoot : IDisposable
3333 public IList < Type > IntegrationJobTypes { get ; set ; }
3434 public ILog Log { get ; set ; }
3535 public IWebApiApplication WebApiApplication { get ; set ; }
36+ public IMessageQueueListenerManager MessageQueueListenerManager { get ; set ; }
3637 public bool IsWebApiEnabled { get ; set ; }
3738 public bool IsSchedulerEnabled { get ; set ; }
38- public bool IsThreadedListenerEnabled { get ; set ; }
39+ public bool IsMessageQueueListenerManagerEnabled { get ; set ; }
3940
4041 public EngineHostCompositionRoot ( )
4142 { }
@@ -63,8 +64,8 @@ public void Configure()
6364 RegisterIntegrationJobs ( ) ;
6465 SetupRScriptRunner ( ) ;
6566 SetupElasticsearchRepository ( ) ;
66- if ( IsThreadedListenerEnabled )
67- SetupThreadedListenerManager ( ) ;
67+ if ( IsMessageQueueListenerManagerEnabled )
68+ SetupMessageQueueListenerManager ( ) ;
6869 if ( IsSchedulerEnabled )
6970 SetupEngineScheduler ( ) ;
7071 if ( IsWebApiEnabled )
@@ -173,21 +174,14 @@ public void RegisterIntegrationJobs()
173174 } ) ;
174175 }
175176
176- public void SetupThreadedListenerManager ( )
177+ public async void SetupMessageQueueListenerManager ( )
177178 {
178179 var config = Container . Resolve < IRabbitMQConfiguration > ( "DefaultRabbitMQ" ) ;
179- var rabbitMqListener = new RabbitMQListener ( ) {
180- IntegrationJobTypes = IntegrationJobTypes ,
181- MessageQueueConnection = new MessageQueueConnection ( config ) ,
182- RabbitMQConfiguration = config ,
183- UnityContainer = Container ,
184- } ;
185-
186- var threadedListenerManager = new ThreadedListenerManager ( ) {
187- MessageQueueListener = rabbitMqListener ,
180+ var messageQueueListenerFactory = new MessageQueueListenerFactory ( Container , IntegrationJobTypes , config ) ;
181+ MessageQueueListenerManager = new MessageQueueListenerManager ( ) {
182+ MessageQueueListenerFactory = messageQueueListenerFactory ,
188183 } ;
189- Container . RegisterInstance < IThreadedListenerManager > ( threadedListenerManager ) ;
190- threadedListenerManager . StartListener ( ) ;
184+ await MessageQueueListenerManager . StartListener ( ) ;
191185 }
192186
193187 public void SetupEngineScheduler ( )
@@ -241,6 +235,8 @@ public void Dispose()
241235 {
242236 if ( WebApiApplication != null )
243237 WebApiApplication . Dispose ( ) ;
238+ if ( MessageQueueListenerManager != null )
239+ MessageQueueListenerManager . Dispose ( ) ;
244240 }
245241 }
246242}
0 commit comments