public static IServiceBusConfigurator UsePublisherConfirms(this IServiceBusConfigurator configurator, PublishSettings publishSettings) { var confirmer = publishSettings.Confirmer; configurator.UseRabbitMq(conf => conf.UsePublisherConfirms(confirmer.RecordPublicationSuccess, confirmer.RecordPublicationFailure, publishSettings.TestNacks)); return(configurator); }
/// <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); }
protected override void ConfigureServiceBus(Uri uri, IServiceBusConfigurator configurator) { base.ConfigureServiceBus(uri, configurator); configurator.AddService <SubscriptionPublisher>(); configurator.AddService <SubscriptionConsumer>(); }
public void ApplyTo(IServiceBusConfigurator configurator) { if (ObjectBuilder != null) { configurator.SetObjectBuilder(ObjectBuilder); } if (ErrorUri != null) { configurator.SendErrorsTo(ErrorUri); } configurator.SetReceiveTimeout(ReceiveTimeout); configurator.SetConcurrentConsumerLimit(ConcurrentConsumerLimit); configurator.SetConcurrentReceiverLimit(ConcurrentReceiverLimit); if (!AutoStart) { configurator.DisableAutoStart(); } if (AutoSubscribe) { configurator.EnableAutoSubscribe(); } }
protected override void ConfigureServiceBus(Uri uri, IServiceBusConfigurator configurator) { base.ConfigureServiceBus(uri, configurator); configurator.UseControlBus(); configurator.UseSubscriptionService(SubscriptionUri); }
protected override void ConfigureServiceBus(Uri uri, IServiceBusConfigurator configurator) { base.ConfigureServiceBus(uri, configurator); _consumer = new SelectiveConsumer(); configurator.Subscribe(s => s.Instance(_consumer)); }
/// <summary> /// Implements a distributor-to-worker pattern for the given message type. /// </summary> /// <typeparam name="T">The type of message to use the distributor</typeparam> /// <param name="configurator">Service bus to implement the distributor</param> /// <param name="endpointFactory">Factory to generate endpoints from a given URL</param> public static void UseDistributorFor <T>(this IServiceBusConfigurator configurator, IEndpointFactory endpointFactory) where T : class { configurator.AddService(() => new Distributor <T>(endpointFactory)); configurator.SetReceiveTimeout(50.Milliseconds()); }
protected override void ConfigureServiceBus(Uri uri, IServiceBusConfigurator configurator) { base.ConfigureServiceBus(uri, configurator); _received = new Future <TestMessage>(); configurator.Subscribe(s => s.Handler <TestMessage>(message => _received.Complete(message))); }
protected override void ConfigureLocalBus(IServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); _timeoutSagaRepository = SetupSagaRepository <TimeoutSaga>(); configurator.Subscribe(s => { s.Saga(_timeoutSagaRepository); }); }
protected override void ConfigureServiceBus(Uri uri, IServiceBusConfigurator configurator) { base.ConfigureServiceBus(uri, configurator); _received = new Future <A>(); configurator.Subscribe(x => x.Handler <A>(msg => _received.Complete(msg))); }
/// <summary> /// You can override to configure the local bus; but if you don't call base method, /// you will not get the subscription loopback router. /// </summary> /// <param name="configurator"></param> protected virtual void ConfigureLocalBus(IServiceBusConfigurator configurator) { configurator.AddSubscriptionObserver((bus, coordinator) => { _localLoopback = new SubscriptionLoopback(bus, coordinator); return(_localLoopback); }); }
protected override void ConfigureLocalBus(IServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); configurator.UseJsonSerializer(); configurator.Subscribe(s => s.Handler <B>(_responseReceived.Complete)); }
/// <summary> /// Implements a distributor-to-worker pattern for the given message type. /// </summary> /// <typeparam name="T">The type of to use the distributor</typeparam> /// <typeparam name="K">The <code>IWorkerSelectionStrategy</code> used to pick /// which worker node to send a message</typeparam> /// <param name="configurator">Service bus to implement the distributor</param> /// <param name="endpointFactory">Factory to generate endpoints from a given URL</param> public static void UseDistributorFor <T, K>(this IServiceBusConfigurator configurator, IEndpointFactory endpointFactory) where T : class where K : class, IWorkerSelectionStrategy <T>, new() { configurator.AddService(() => new Distributor <T>(endpointFactory, new K())); configurator.SetReceiveTimeout(50.Milliseconds()); }
public static IServiceBusConfigurator SetShutdownTimeout(this IServiceBusConfigurator configurator, TimeSpan timeout) { var controlBusConfigurator = new PostCreateBusBuilderConfigurator(bus => { bus.ShutdownTimeout = timeout; }); configurator.AddBusConfigurator(controlBusConfigurator); return(configurator); }
public static IServiceBusConfigurator SetConcurrentConsumerLimit(this IServiceBusConfigurator configurator, int concurrentConsumerLimit) { var controlBusConfigurator = new PostCreateBusBuilderConfigurator(bus => { bus.MaximumConsumerThreads = concurrentConsumerLimit; }); configurator.AddBusConfigurator(controlBusConfigurator); return(configurator); }
protected override void ConfigureLocalBus(IServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); _received = new FutureMessage <IProxyMe>(); configurator.Subscribe(x => { x.Handler <IProxyMe>((message) => _received.Set(message)); }); }
public static IServiceBusConfigurator AddService <TService>(this IServiceBusConfigurator configurator, IBusServiceLayer layer, Func <TService> serviceFactory) where TService : IBusService { var serviceConfigurator = new DefaultBusServiceConfigurator <TService>(layer, bus => serviceFactory()); configurator.AddBusConfigurator(serviceConfigurator); return(configurator); }
public static void UseSagaDistributorFor <T>(this IServiceBusConfigurator configurator, IEndpointFactory endpointFactory) where T : SagaStateMachine <T>, ISaga { var saga = FastActivator <T> .Create(CombGuid.Generate()); var serviceConfigurator = new SagaDistributorConfigurator(configurator, endpointFactory); saga.EnumerateDataEvents(serviceConfigurator.AddService); }
/// <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 IServiceBusConfigurator UseControlBus(this IServiceBusConfigurator configurator, Action <IControlBusConfigurator> configure) { var controlBusConfigurator = new ControlBusConfigurator(); configure(controlBusConfigurator); configurator.AddBusConfigurator(controlBusConfigurator); return(configurator); }
protected override void ConfigureLocalBus(IServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); _received = new Future <A>(); configurator.Subscribe(s => s.Handler <A>(message => _received.Complete(message))); }
public static IServiceBusConfigurator EnableRemoteIntrospection(this IServiceBusConfigurator configurator) { var serviceConfigurator = new IntrospectionServiceConfigurator(); var busConfigurator = new CustomBusServiceConfigurator(serviceConfigurator); configurator.AddBusConfigurator(busConfigurator); return(configurator); }
protected virtual void ConfigureRemoteBus(IServiceBusConfigurator configurator) { RemoteUri = new Uri("loopback://localhost/mt_server"); configurator.ReceiveFrom(RemoteUri); configurator.AddSubscriptionObserver((bus, coordinator) => { _remoteLoopback = new SubscriptionLoopback(bus, coordinator); return(_remoteLoopback); }); }
protected virtual void ConfigureLocalBus(IServiceBusConfigurator configurator) { LocalUri = new Uri("loopback://localhost/mt_client"); configurator.ReceiveFrom(LocalUri); configurator.AddSubscriptionObserver((bus, coordinator) => { _localLoopback = new SubscriptionLoopback(bus, coordinator); return(_localLoopback); }); }
protected override void ConfigureRemoteBus(IServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.Subscribe(cf => { cf.Handler <MyMessage>(message => receivedMessages.Add(1)); cf.Handler <MyMessage>(message => receivedMessages.Add(2)); }); }
public static IServiceBusConfigurator AddSubscriptionObserver(this IServiceBusConfigurator configurator, Func <IServiceBus, ISubscriptionRouter, ISubscriptionObserver> observerFactory) { var coordinatorConfigurator = new SubscriptionRouterBuilderConfigurator(x => x.AddObserverFactory(observerFactory)); configurator.AddSubscriptionRouterConfigurator(coordinatorConfigurator); return(configurator); }
protected override void ConfigureRemoteBus(IServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.Subscribe(x => { x.Handler <A>((context, message) => _receivedA.Set(message)); x.Handler <B>((context, message) => _receivedB.Set(message)); x.Handler <C>((context, message) => _receivedC.Set(message)); }); }
protected override void ConfigureLocalBus(IServiceBusConfigurator configurator) { configurator.Subscribe(x => x.Handler <Message <int> >((context, message) => { _called.Set(message); context.Respond(new Message <string> { Body = message.Body.ToString() }); })); }
/// <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 IServiceBusConfigurator UseHealthMonitoring(this IServiceBusConfigurator configurator, int heartbeatInterval) { var serviceConfigurator = new HealthClientConfigurator(); serviceConfigurator.SetHeartbeatInterval(heartbeatInterval); var busConfigurator = new CustomBusServiceConfigurator(serviceConfigurator); configurator.AddBusConfigurator(busConfigurator); return(configurator); }
public static IServiceBusConfigurator Subscribe(this IServiceBusConfigurator configurator, Action <ISubscriptionBusServiceConfigurator> configure) { var subscriptionConfigurator = new SubscriptionBusServiceConfigurator(); configure(subscriptionConfigurator); configurator.AddBusConfigurator(subscriptionConfigurator); return(configurator); }
protected override void Load(ContainerBuilder builder) { builder.RegisterType <Publisher>().As <IPublisher>(); builder.Register(c => ServiceBusFactory.New(sbc => { IServiceBusConfigurator config = c.Resolve <IServiceBusConfigurator>(); config.Config(c, sbc); })).As <IServiceBus>() .SingleInstance(); //builder.RegisterType<ServiceBusAppEventHandler>().As<IAppEventHandler>(); }
protected static void ConfigureSubscriptionClient(Uri subscriptionServiceEndpointAddress, IServiceBusConfigurator configurator) { configurator.ConfigureService<SubscriptionClientConfigurator>(y => { // this is fairly easy inline, but wanted to include the example for completeness y.SetSubscriptionServiceEndpoint(subscriptionServiceEndpointAddress); }); }
protected static void ConfigureSubscriptionClient(string subscriptionServiceEndpointAddress, IServiceBusConfigurator configurator) { ConfigureSubscriptionClient(new Uri(subscriptionServiceEndpointAddress), configurator); }
public void ApplyTo(IServiceBusConfigurator configurator) { if (ObjectBuilder != null) configurator.SetObjectBuilder(ObjectBuilder); if (ErrorUri != null) configurator.SendErrorsTo(ErrorUri); configurator.SetReceiveTimeout(ReceiveTimeout); configurator.SetConcurrentConsumerLimit(ConcurrentConsumerLimit); configurator.SetConcurrentReceiverLimit(ConcurrentReceiverLimit); if (!AutoStart) configurator.DisableAutoStart(); if (AutoSubscribe) configurator.EnableAutoSubscribe(); }
protected override void ConfigureLocalBus(IServiceBusConfigurator configurator) { var mock = MockRepository.GenerateStub<IWorkerSelectionStrategy<FirstCommand>>(); mock.Stub(x => x.GetAvailableWorkers(null, null, false)) .IgnoreArguments() .Return(new List<WorkerDetails> { new WorkerDetails { ControlUri = _nodes["A"].AppendToPath("_control"), DataUri = _nodes["A"], InProgress = 0, InProgressLimit = 100, LastUpdate = DateTime.UtcNow } }); configurator.UseDistributorFor(EndpointFactory, mock); }