Пример #1
0
 public ServiceBusSettings(ServiceBusSettings settings)
 {
     AutoStart = settings.AutoStart;
     ConcurrentConsumerLimit = settings.ConcurrentConsumerLimit;
     ConcurrentReceiverLimit = settings.ConcurrentReceiverLimit;
     ReceiveTimeout          = settings.ReceiveTimeout;
     ShutdownTimeout         = settings.ShutdownTimeout;
     EndpointCache           = settings.EndpointCache;
     Network = settings.Network;
     EnablePerformanceCounters = settings.EnablePerformanceCounters;
 }
Пример #2
0
        public ServiceBusConfigurator(ServiceBusDefaultSettings defaultSettings)
        {
            _settings = new ServiceBusSettings(defaultSettings);

            _builderFactory = DefaultBuilderFactory;
            _configurators  = new List <IBusBuilderConfigurator>();

            _endpointFactoryConfigurator = new EndpointFactoryConfigurator(new EndpointFactoryDefaultSettings());

            _subscriptionRouterConfigurator = new SubscriptionRouterConfigurator(_settings.Network);
            _configurators.Add(_subscriptionRouterConfigurator);
        }
Пример #3
0
        public IBusBuilder Configure(IBusBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException("builder");
            }

            builder.Match <IServiceBusBuilder>(x =>
            {
                var settings = new ServiceBusSettings(builder.Settings);

                settings.InputAddress = _uri ?? builder.Settings.InputAddress.AppendToPath("_control");

                // the endpoint factory is already created, so we can't set the endpoint here
                // we really need this to be part of another step, but i don't have a clue how yet.
                //_configurator.ConfigureEndpoint(_uri, x => x.PurgeExistingMessages());

                if (_log.IsDebugEnabled)
                {
                    _log.DebugFormat("Configuring control bus for {0} at {1}", builder.Settings.InputAddress,
                                     settings.InputAddress);
                }

                settings.ConcurrentConsumerLimit = 1;
                settings.ConcurrentReceiverLimit = 1;
                settings.AutoStart = true;

                IBusBuilder controlBusBuilder = new ControlBusBuilder(settings);

                controlBusBuilder = _configurators
                                    .Aggregate(controlBusBuilder, (current, configurator) => configurator.Configure(current));

                IControlBus controlBus = controlBusBuilder.Build();

                x.UseControlBus(controlBus);
            });

            return(builder);
        }
Пример #4
0
 static IBusBuilder DefaultBuilderFactory(ServiceBusSettings settings)
 {
     return(new ServiceBusBuilder(settings));
 }