public void Publish(Message message) { if (RedirectToNull) { return; } _target?.Publish(message); }
public void Handle(Message message) { if (_trackedMessages.Remove(message.MsgId)) { return; } if (message is Command) { _bus.TryFire((Command)message); } else { _bus.Publish(message); } }
/// <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; } }
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)); }