public static IBus CreateBus(string connectionStringKey) { var appSettings = new AppSettings(); var connectionString = appSettings.ConnectionStrings.Get(connectionStringKey, () => DefaultConnection); var subscriptionPrefix = appSettings.RabbitMQ.SubscriptionPrefix; try { Log.InfoFormat("Connecting to RabbitMQ via {0} and using subscription prefix {1}", connectionString, subscriptionPrefix); var logger = new RabbitMQLogger(); var bus = RabbitHutch.CreateBus(connectionString, x => x.Register<IEasyNetQLogger>(p => logger)); Log.DebugFormat("Connected to RabbitMQ on {0} and using subscription prefix {1}", connectionString, subscriptionPrefix); return bus; } catch (Exception e) { Log.ErrorFormat("Failed to create a bus for RabbitMQ with connectionstring: {0}", connectionString); Log.ErrorFormat("The failure was {0}", e.Message); throw; } }
public IBus CreateBus(string connectionStringKey, IWindsorContainer container) { var appSettings = new AppSettings(); var connectionString = appSettings.ConnectionStrings.Get(connectionStringKey, () => DefaultConnection); var subscriptionPrefix = appSettings.RabbitMQ.SubscriptionPrefix; try { Log.InfoFormat("Connecting to RabbitMQ via {0} and using subscription prefix {1}", connectionString, subscriptionPrefix); var logger = new RabbitMQLogger(); var bus = RabbitHutch.CreateBus(connectionString, x => x.Register<IEasyNetQLogger>(p => logger)); var autoSubscriber = new AutoSubscriber(bus, subscriptionPrefix) { AutoSubscriberMessageDispatcher = new WindsorMessageDispatcher(container) }; var registration = new ConsumerRegistration(); var assemblies = registration.GetAssemblies(container); autoSubscriber.Subscribe(assemblies.ToArray()); autoSubscriber.SubscribeAsync(assemblies.ToArray()); Log.DebugFormat("Connected to RabbitMQ on {0} and using subscription prefix {1}", connectionString, subscriptionPrefix); return bus; } catch (Exception e) { Log.ErrorFormat("Failed to create a bus for RabbitMQ with connectionstring: {0}", connectionString); Log.ErrorFormat("The failure was {0}", e.Message); throw; } }