/// <summary>
		/// Sets the number of concurrent receive threads that can execute simultaneously. In many cases, such as when
		/// using non-transactional transports, this can lead to very-bad-things(TM)
		/// </summary>
		/// <param name="configurator"></param>
		/// <param name="concurrentReceiverLimit"></param>
		public static void SetConcurrentReceiverLimit(this ServiceBusConfigurator configurator, int concurrentReceiverLimit)
		{
			var controlBusConfigurator =
				new PostCreateBusBuilderConfiguratorImpl(bus => { bus.ConcurrentReceiveThreads = concurrentReceiverLimit; });

			configurator.AddBusConfigurator(controlBusConfigurator);
		}
		public static void SetConcurrentConsumerLimit(this ServiceBusConfigurator configurator, int concurrentConsumerLimit)
		{
			var controlBusConfigurator =
				new PostCreateBusBuilderConfigurator(bus => { bus.MaximumConsumerThreads = concurrentConsumerLimit; });

			configurator.AddBusConfigurator(controlBusConfigurator);
		}
        public static void SetShutdownTimeout(this ServiceBusConfigurator configurator, TimeSpan timeout)
        {
            var controlBusConfigurator =
                new PostCreateBusBuilderConfigurator(bus => { bus.ShutdownTimeout = timeout; });

            configurator.AddBusConfigurator(controlBusConfigurator);
        }
        public static void EnableRemoteIntrospection(this ServiceBusConfigurator configurator)
        {
            var serviceConfigurator = new IntrospectionServiceConfigurator();

            var busConfigurator = new CustomBusServiceConfigurator(serviceConfigurator);

            configurator.AddBusConfigurator(busConfigurator);
        }
		/// <summary>
		/// Create a control bus, associate it with the ServiceBus being configured, and allow for customization using
		/// the specified method.
		/// </summary>
		/// <param name="configurator"></param>
		/// <param name="configure"></param>
		public static void UseControlBus(this ServiceBusConfigurator configurator, Action<ControlBusConfigurator> configure)
		{
			var controlBusConfigurator = new ControlBusConfiguratorImpl();

			configure(controlBusConfigurator);

			configurator.AddBusConfigurator(controlBusConfigurator);
		}
		public static void Subscribe(this ServiceBusConfigurator configurator,
									 Action<SubscriptionBusServiceConfigurator> configure)
		{
			var subscriptionConfigurator = new SubscriptionBusServiceConfiguratorImpl();

			configure(subscriptionConfigurator);

			configurator.AddBusConfigurator(subscriptionConfigurator);
		}
		/// <summary>
		/// Specifies that the service bus will be using health monitoring. This means that
		/// the bus will publish heart beats and respond to ping messages. For more information,
		/// see http://readthedocs.org/docs/masstransit/en/latest/overview/standardservices.html
		/// </summary>
		/// <param name="configurator">Configurator that the extension method is invoked upon.</param>
		/// <param name="heartbeatInterval">The heartbeat interval in seconds (one heartbeat evey n seconds)</param>
		public static void UseHealthMonitoring(this ServiceBusConfigurator configurator, int heartbeatInterval)
		{
			var serviceConfigurator = new HealthClientConfigurator();
			serviceConfigurator.SetHeartbeatInterval(heartbeatInterval);

			var busConfigurator = new CustomBusServiceConfigurator(serviceConfigurator);

			configurator.AddBusConfigurator(busConfigurator);
		}
        public static void Distributor(this ServiceBusConfigurator configurator,
            Action<DistributorBusServiceConfigurator> configure)
        {
            var subscriptionConfigurator = new DistributorBusServiceConfiguratorImpl();

            configure(subscriptionConfigurator);

            configurator.AddBusConfigurator(subscriptionConfigurator);
        }
        public static void Worker(this ServiceBusConfigurator configurator,
            Action<WorkerBusServiceConfigurator> configure)
        {
            var workerConfigurator = new WorkerBusServiceConfiguratorImpl();

            configure(workerConfigurator);

            configurator.AddBusConfigurator(workerConfigurator);
        }
        public static ServiceBusConfigurator UseStomp(this ServiceBusConfigurator configurator)
        {
            var busConfigurator = new PostCreateBusBuilderConfiguratorImpl(
                bus => bus.AddService(BusServiceLayer.Network, new StompSubscriptionService()));

            configurator.AddBusConfigurator(busConfigurator);
            configurator.UseJsonSerializer();

            return configurator.AddTransportFactory<StompTransportFactory>();
        }
Esempio n. 11
0
        public static void EnableMessageTracing(this ServiceBusConfigurator configurator)
        {
            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
                {
                    var service = new MessageTraceBusService(bus.EventChannel);

                    bus.AddService(BusServiceLayer.Network, service);
                });

            configurator.AddBusConfigurator(busConfigurator);
        }
Esempio n. 12
0
        /// <summary>
        /// Adds an inbound message interceptor to the bus configuration
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="interceptor"></param>
        public static void AddInboundInterceptor(this ServiceBusConfigurator configurator,
            IInboundMessageInterceptor interceptor)
        {
            var builderConfigurator = new PostCreateBusBuilderConfigurator(bus =>
                {
                    var interceptorConfigurator = new InboundMessageInterceptorConfigurator(bus.InboundPipeline);

                    interceptorConfigurator.Create(interceptor);
                });

            configurator.AddBusConfigurator(builderConfigurator);
        }
		public static void UseRabbitMqRouting(this ServiceBusConfigurator configurator)
		{
			configurator.SetSubscriptionObserver((bus,coordinator) => new RabbitMqSubscriptionBinder(bus));

			var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
				{
					var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

					interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
				});

			configurator.AddBusConfigurator(busConfigurator);

			configurator.UseRabbitMq();
		}
		public static void UseRabbitMqRouting(this ServiceBusConfigurator configurator)
		{
			var busConfigurator = new PostCreateBusBuilderConfiguratorImpl(bus =>
				{
					bus.RemoveLoopbackSubsciber();
					bus.InboundPipeline.Configure(x =>
						{
							x.Register(new RabbitMqSubscriptionBinder(bus.Endpoint.InboundTransport));
						});

					var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

					interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
				});

			configurator.AddBusConfigurator(busConfigurator);

			configurator.UseRabbitMq();
		}
		/// <summary>
		/// Sets the receive timeout on the service bus endpoint receiver. Settings this to a lower value has limited
		/// benefit other than in unit testing to reduce bus disposal time
		/// </summary>
		/// <param name="configurator"></param>
		/// <param name="receiveTimeout"></param>
		public static void SetReceiveTimeout(this ServiceBusConfigurator configurator, TimeSpan receiveTimeout)
		{
			var controlBusConfigurator = new PostCreateBusBuilderConfiguratorImpl(bus => { bus.ReceiveTimeout = receiveTimeout; });

			configurator.AddBusConfigurator(controlBusConfigurator);
		}