コード例 #1
0
        public void Send <T>(T msg, string routeKey)
        {
            RefreshQueues();

            var matchingQueues = MessageExchangeDeclaration.BindMessageToQueues(routeKey, _exchangeType, _queues);

            foreach (var q in matchingQueues)
            {
                var outbox = new FDMessageOutbox(_busName, _exchangeName, q);
                outbox.Enqueue(msg);
                outbox.Send();
            }
        }
コード例 #2
0
        public void Send <T>(T msg, string routeKey)
        {
            RefreshQueues();

            var matchingQueues = MessageExchangeDeclaration.BindMessageToQueues(routeKey, _exchangeType, _queues);

            foreach (var q in matchingQueues)
            {
                using (var outbox = new MemoryMappedTransferOutbox(q))
                {
                    outbox.Enqueue(new MessageQueueEnvelope(msg));
                    outbox.Send();
                }
            }
        }
コード例 #3
0
        public void Send <T>(T msg, string routeKey)
        {
            RefreshQueues();

            var matchingQueues = MessageExchangeDeclaration.BindMessageToQueues(routeKey, _exchangeType, _queues);

            foreach (var q in matchingQueues)
            {
                var queue  = _queues.FirstOrDefault(s => s.Name == q);
                var outbox = queue as IMemQueueAccess;
                if (null != outbox)
                {
                    outbox.Queue.Enqueue(new LightMessageQueueEnvelope(msg));
                    outbox.SentEvent.Set();
                }
            }
        }