Beispiel #1
0
        public PipelineServiceBus(BaseServiceBusConfig config)
        {
            this.Name = Guid.NewGuid().ToString();

            this.MessageMapper = config.MessageMapper;

            this.staticRoutes = new Dictionary <Type, HashSet <string> >();
            foreach (var mapping in config.MessageEndpointMappings.OrderByDescending(m => m))
            {
                mapping.Configure((messageType, endpoint) =>
                {
                    if (!staticRoutes.ContainsKey(messageType))
                    {
                        staticRoutes[messageType] = new HashSet <string>();
                    }
                    staticRoutes[messageType].Add(endpoint);
                    logger.Debug("Mapping message type [{0}] to endpoint [{1}]", messageType.FullName, endpoint);
                });
            }

            this.Transport = config.CreateTransportSender();

            List <PipelineMessageReceiver> receivers;

            MessageReceivers = receivers = new List <PipelineMessageReceiver>();
            foreach (var receiverConfig in config.MessageReceivers)
            {
                var receiver = new PipelineMessageReceiver(this, receiverConfig, config);
                receivers.Add(receiver);
                this.startupActions.Add(() => receiver.Start());
            }
        }
 public InMemoryQueueTransportReceiver(InMemoryQueueMessageReceiverConfiguration config, BaseServiceBusConfig serviceBusConfig)
 {
     QueueName = config.Address;
     MaxRetries = config.MaxRetries;
     if (MaxRetries < 0)
     {
         MaxRetries = 0;
     }
     MaxConcurrency = config.MaxConcurrency;
     if (MaxConcurrency < 0)
     {
         MaxConcurrency = 0;
     }
     faultManager = new TransportMessageFaultManager(MaxRetries);
 }
        public PipelineMessageReceiver(PipelineServiceBus bus, BaseMessageReceiverConfiguration config, BaseServiceBusConfig serviceBusConfig)
        {
            this.Bus = bus;
            this.Name = Guid.NewGuid().ToString();

            this.ServiceLocator = serviceBusConfig.ServiceLocator;
            this.MessageMapper = serviceBusConfig.MessageMapper;
            this.MessageHandlers = config.GetCombinedMessageHandlers();
            this.compiledMessageHandlerPipeline = config.GetCompiledMessageHandlerPipeline();

            // initialize all known message types
            this.MessageMapper.Initialize(this.MessageHandlers.Select(x => x.HandledMessageType));

            this.Transport = config.CreateTransportReceiver();
            this.Transport.MessageAvailable += (sender, args) => OnMessageAvailable(args);
            this.Transport.PoisonMessageDetected += (sender, args) => OnPoisonMessageDetected(args);
            this.startupActions.Add(() => this.Transport.Start());
        }
Beispiel #4
0
        public PipelineMessageReceiver(PipelineServiceBus bus, BaseMessageReceiverConfiguration config, BaseServiceBusConfig serviceBusConfig)
        {
            this.Bus  = bus;
            this.Name = Guid.NewGuid().ToString();

            this.ServiceLocator  = serviceBusConfig.ServiceLocator;
            this.MessageMapper   = serviceBusConfig.MessageMapper;
            this.MessageHandlers = config.GetCombinedMessageHandlers();
            this.compiledMessageHandlerPipeline = config.GetCompiledMessageHandlerPipeline();

            // initialize all known message types
            this.MessageMapper.Initialize(this.MessageHandlers.Select(x => x.HandledMessageType));

            this.Transport = config.CreateTransportReceiver();
            this.Transport.MessageAvailable      += (sender, args) => OnMessageAvailable(args);
            this.Transport.PoisonMessageDetected += (sender, args) => OnPoisonMessageDetected(args);
            this.startupActions.Add(() => this.Transport.Start());
        }
Beispiel #5
0
 public InMemoryQueueTransportReceiver(InMemoryQueueMessageReceiverConfiguration config, BaseServiceBusConfig serviceBusConfig)
 {
     QueueName  = config.Address;
     MaxRetries = config.MaxRetries;
     if (MaxRetries < 0)
     {
         MaxRetries = 0;
     }
     MaxConcurrency = config.MaxConcurrency;
     if (MaxConcurrency < 0)
     {
         MaxConcurrency = 0;
     }
     faultManager = new TransportMessageFaultManager(MaxRetries);
 }
Beispiel #6
0
 public InMemoryQueueTransportSender(BaseServiceBusConfig serviceBusConfig)
 {
 }
 public InMemoryQueueTransportSender(BaseServiceBusConfig serviceBusConfig)
 {
 }