public static void SetShutdownTimeout(this ServiceBusConfigurator configurator, TimeSpan timeout) { var controlBusConfigurator = new PostCreateBusBuilderConfigurator(bus => { bus.ShutdownTimeout = timeout; }); configurator.AddBusConfigurator(controlBusConfigurator); }
public static void SetConcurrentConsumerLimit(this ServiceBusConfigurator configurator, int concurrentConsumerLimit) { var controlBusConfigurator = new PostCreateBusBuilderConfigurator(bus => { bus.MaximumConsumerThreads = concurrentConsumerLimit; }); configurator.AddBusConfigurator(controlBusConfigurator); }
/// <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 PostCreateBusBuilderConfigurator(bus => { bus.ConcurrentReceiveThreads = concurrentReceiverLimit; }); configurator.AddBusConfigurator(controlBusConfigurator); }
/// <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 IServiceBusConfigurator SetReceiveTimeout(this IServiceBusConfigurator configurator, TimeSpan receiveTimeout) { var controlBusConfigurator = new PostCreateBusBuilderConfigurator(bus => { bus.ReceiveTimeout = receiveTimeout; }); configurator.AddBusConfigurator(controlBusConfigurator); return(configurator); }
public static void SetShutdownTimeout(this ServiceBusConfigurator configurator, TimeSpan timeout) { var controlBusConfigurator = new PostCreateBusBuilderConfigurator(bus => { bus.ShutdownTimeout = timeout; }); configurator.AddBusConfigurator(controlBusConfigurator); }
public static IServiceBusConfigurator SetConcurrentConsumerLimit(this IServiceBusConfigurator configurator, int concurrentConsumerLimit) { var controlBusConfigurator = new PostCreateBusBuilderConfigurator(bus => { bus.MaximumConsumerThreads = concurrentConsumerLimit; }); configurator.AddBusConfigurator(controlBusConfigurator); return(configurator); }
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); }
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); }
public static void AddOutboundInterceptor(this ServiceBusConfigurator configurator, IOutboundMessageInterceptor interceptor) { var builderConfigurator = new PostCreateBusBuilderConfigurator(bus => { var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline); interceptorConfigurator.Create(interceptor); }); configurator.AddBusConfigurator(builderConfigurator); }
/// <summary> /// Adds an inbound message interceptor to the bus configuration /// </summary> /// <param name="configurator"></param> /// <param name="interceptor"></param> public static IServiceBusConfigurator AddInboundInterceptor(this IServiceBusConfigurator configurator, IInboundMessageInterceptor interceptor) { var builderConfigurator = new PostCreateBusBuilderConfigurator(bus => { var interceptorConfigurator = new InboundMessageInterceptorConfigurator(bus.InboundPipeline); interceptorConfigurator.Create(interceptor); }); configurator.AddBusConfigurator(builderConfigurator); return(configurator); }
public static IServiceBusConfigurator EnableMessageTracing(this IServiceBusConfigurator configurator) { var busConfigurator = new PostCreateBusBuilderConfigurator(bus => { var service = new MessageTraceBusService(bus.EventChannel); bus.AddService(IBusServiceLayer.Presentation, service); }); configurator.AddBusConfigurator(busConfigurator); return(configurator); }
/// <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) { 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(); }
/// <summary> /// Specifies that RabbitMQ should be added as a transport for the service bus. /// </summary> /// <param name="configurator"></param> /// <returns></returns> public static ServiceBusConfigurator UseRabbitMq(this ServiceBusConfigurator configurator) { configurator.SetSubscriptionObserver((bus, coordinator) => new RabbitMqSubscriptionBinder(bus)); var busConfigurator = new PostCreateBusBuilderConfigurator(bus => { var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline); // make sure we publish correctly through this interceptor; works on the outgoing pipeline interceptorConfigurator.Create(new PublishEndpointInterceptor(bus)); }); configurator.AddBusConfigurator(busConfigurator); return(UseRabbitMq <ServiceBusConfigurator>(configurator)); }
/// <summary> /// Specifies that RabbitMQ should be added as a transport for the service bus. Includes a callback /// that can configure additional settings on the transport, such as SSL. /// </summary> /// <param name="configurator"></param> /// <param name="configureFactory"></param> /// <returns></returns> public static void UseRabbitMq(this ServiceBusConfigurator configurator, Action <RabbitMqTransportFactoryConfigurator> configureFactory) { configurator.SetSubscriptionObserver((bus, coordinator) => new RabbitMqSubscriptionBinder(bus)); var busConfigurator = new PostCreateBusBuilderConfigurator(bus => { var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline); // make sure we publish correctly through this interceptor; works on the outgoing pipeline interceptorConfigurator.Create(new PublishEndpointInterceptor(bus)); }); configurator.AddBusConfigurator(busConfigurator); UseRabbitMq((EndpointFactoryConfigurator)configurator, configureFactory); }
/// <summary> /// Configure the service bus to use the queues and topics routing semantics with /// Azure ServiceBus. /// </summary> public static void UseAzureServiceBusRouting <T>(this T configurator) where T : ServiceBusConfigurator { configurator.SetSubscriptionObserver((sb, router) => { var inboundTransport = sb.Endpoint.InboundTransport.CastAs <InboundTransportImpl>(); return(new TopicSubscriptionObserver(inboundTransport.MessageNameFormatter, inboundTransport)); }); var busConf = new PostCreateBusBuilderConfigurator(bus => { var interceptorConf = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline); interceptorConf.Create(new PublishEndpointInterceptor(bus)); }); configurator.AddBusConfigurator(busConf); // configurator.UseAzureServiceBus(); }
/// <summary> /// Configure the service bus to use the queues and topics routing semantics with /// Azure ServiceBus. /// </summary> public static void UseAzureServiceBusRouting <T>(this T configurator) where T : ServiceBusConfigurator { configurator.SetSubscriptionObserver((sb, router) => { var inboundTransport = sb.Endpoint.InboundTransport as InboundAzureServiceBusTransport; if (inboundTransport == null) { throw new ConfigurationException("The inbound transport is not an Azure Service Bus transport"); } return(new TopicSubscriptionObserver(inboundTransport, inboundTransport.MessageNameFormatter)); }); var busConf = new PostCreateBusBuilderConfigurator(bus => { var interceptorConf = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline); interceptorConf.Create(new PublishEndpointInterceptor(bus)); }); configurator.AddBusConfigurator(busConf); }
/// <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 PostCreateBusBuilderConfigurator(bus => { bus.ReceiveTimeout = receiveTimeout; }); configurator.AddBusConfigurator(controlBusConfigurator); }