/// <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>(); }
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); }
/// <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); }