public void Start()
 {
     _continue       = true;
     _observerThread = new Thread(QueueObserverThread)
     {
         Name = _threadName ??
                $"Transport Observer thread for queue {_transportEndpointAddress.GetFriendlyName()}",
         IsBackground = true,
     };
     _observerThread.Start();
 }
コード例 #2
0
        public static void Register(TransportEndpointAddress transportEndpointAddress, ITransport transport)
        {
            if (transport == null)
            {
                return;
            }

            Map[transportEndpointAddress.GetFriendlyName()] = transport;
        }
コード例 #3
0
        /// <summary>
        /// Check existence of input and error endpoint and create them if needed
        /// </summary>
        private void PrepareQueues()
        {
            // Prepare input endpoint
            var inputMutexName =
                $"Paralect.ServiceBus.{_inputTransportEndpointAddress.GetFriendlyName()}.InputQueue";

            if (!_provider.ExistsEndpoint(_inputTransportEndpointAddress))
            {
                MutexFactory.LockByMutex(inputMutexName, () =>
                {
                    if (!_provider.ExistsEndpoint(_inputTransportEndpointAddress))
                    {
                        _provider.CreateEndpoint(_inputTransportEndpointAddress);
                    }
                });
            }

            _provider.PrepareEndpoint(_inputTransportEndpointAddress);


            // Prepare error endpoint
            var errorMutexName =
                $"Paralect.ServiceBus.{_inputTransportEndpointAddress.GetFriendlyName()}.ErrorQueue";

            if (!_provider.ExistsEndpoint(_errorTransportEndpointAddress))
            {
                MutexFactory.LockByMutex(errorMutexName, () =>
                {
                    if (!_provider.ExistsEndpoint(_errorTransportEndpointAddress))
                    {
                        _provider.CreateEndpoint(_errorTransportEndpointAddress);
                    }
                });
            }

            _provider.PrepareEndpoint(_errorTransportEndpointAddress);
        }
コード例 #4
0
 public static ITransport GetQueueProvider(TransportEndpointAddress transportEndpointAddress)
 {
     return(!Map.TryGetValue(transportEndpointAddress.GetFriendlyName(), out ITransport provider) ? null : provider);
 }