/// <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>
        public static void UseDistributorFor <T>(this ServiceBusConfigurator configurator)
            where T : class
        {
            configurator.AddService(BusServiceLayer.Presentation, () => new Distributor <T>());

            configurator.SetReceiveTimeout(50.Milliseconds());
        }
        /// <summary>
        /// Implements a distributor-to-worker pattern for the given message type.
        /// </summary>
        /// <typeparam name="TMessage">The type of to use the distributor</typeparam>
        /// <param name="configurator">Service bus to implement the distributor</param>
        /// <param name="workerSelectionStrategy">The <code>IWorkerSelectionStrategy</code>
        /// used to pick which worker node to send a message</param>
        public static void UseDistributorFor <TMessage>(this ServiceBusConfigurator configurator,
                                                        IWorkerSelectionStrategy <TMessage> workerSelectionStrategy)
            where TMessage : class
        {
            configurator.AddService(BusServiceLayer.Presentation, () => new Distributor <TMessage>(workerSelectionStrategy));

            configurator.SetReceiveTimeout(50.Milliseconds());
        }
        public static void ImplementDistributorWorker <TMessage>(this ServiceBusConfigurator configurator,
                                                                 Func <TMessage, Action <TMessage> > getConsumer, int inProgressLimit, int pendingLimit)
            where TMessage : class
        {
            var settings = new WorkerSettings
            {
                InProgressLimit = inProgressLimit,
                PendingLimit    = pendingLimit
            };

            configurator.AddService(BusServiceLayer.Presentation, () => new Worker <TMessage>(getConsumer, settings));
        }
Пример #4
0
 protected void ConnectSubscriptionService(ServiceBusConfigurator configurator,
                                           ISubscriptionService subscriptionService)
 {
     configurator.AddService(BusServiceLayer.Session, () => new SubscriptionPublisher(subscriptionService));
     configurator.AddService(BusServiceLayer.Session, () => new SubscriptionConsumer(subscriptionService));
 }
 public static void ImplementDistributorWorker <TMessage>(this ServiceBusConfigurator configurator,
                                                          Func <TMessage, Action <TMessage> > getConsumer)
     where TMessage : class
 {
     configurator.AddService(BusServiceLayer.Presentation, () => new Worker <TMessage>(getConsumer));
 }
 public static void ImplementSagaDistributorWorker <T>(this ServiceBusConfigurator configurator,
                                                       ISagaRepository <T> repository)
     where T : SagaStateMachine <T>, ISaga
 {
     configurator.AddService(BusServiceLayer.Presentation, bus => new SagaWorker <T>(repository));
 }
Пример #7
0
 private void AddServiceForDataEvent <TMessage>()
     where TMessage : class
 {
     _configurator.AddService(BusServiceLayer.Presentation, () => new Distributor <TMessage>());
 }