Exemplo n.º 1
0
 public void Publish(Message message)
 {
     if (RedirectToNull)
     {
         return;
     }
     _target?.Publish(message);
 }
Exemplo n.º 2
0
 public void Handle(Message message)
 {
     if (_trackedMessages.Remove(message.MsgId))
     {
         return;
     }
     if (message is Command)
     {
         _bus.TryFire((Command)message);
     }
     else
     {
         _bus.Publish(message);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// Publishes TestMessages in a loop at a given time interval
 /// </summary>
 /// <param name="intervalInMs"></param>
 public void StartPublishing(int intervalInMs)
 {
     Task.Run(
         () =>
     {
         while (_publish)
         {
             _bus.Publish(new TestMessage());
             if (intervalInMs > 0)
             {
                 Thread.Sleep(intervalInMs);
             }
         }
     });
 }
        protected CommandQueueSpecification(
            int queueCount = 1,
            int slowCmdMs  = 500,
            int slowAckMs  = 500)
        {
            Bus = new CommandBus(
                "Fixture Bus",
                slowCmdThreshold: TimeSpan.FromMilliseconds(slowCmdMs),
                slowMsgThreshold: TimeSpan.FromMilliseconds(slowAckMs));

            Queue = new MultiQueuedHandler(
                queueCount,
                index => new QueuedHandler(
                    new AdHocHandler <Message>(
                        msg =>
            {
                if (msg is Command)
                {
                    Bus.TryFire((Command)msg);
                }
                else
                {
                    Bus.Publish(msg);
                }
            }),
                    $"Queue {index}"
                    )
                );
            Queue.Start();
            TestQueue = new TestQueue(Bus);
            try
            {
                Given();
                When();
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 5
0
        public void Handle(Message message)
        {
            Type    type1 = MessageHierarchy.GetMsgType(message.MsgTypeId);
            dynamic msg   = message;
            var     type2 = msg.GetType();

            if (!type1.Equals(type2))
            {
                var error =
                    $"Message object-type mismatch.  MsgTypeId={message.MsgTypeId}, which MessageHierarchy claims is a {type1.FullName}.  However, .Net Reflection says that the command is a {type2.FullName}";
                Log.Error(error);
                throw new Exception(error);
            }

            var before = DateTime.UtcNow;

            MessageReceived(msg, type1, "TcpBusSide");

            _tcpOutboundMessageHandler.IgnoreThisMessage(message);
            Type type = MessageHierarchy.GetMsgType(message.MsgTypeId);

            _mainBus.Publish(message);
            PostHandleMessage(msg, type1, (DateTime.UtcNow - before));
        }