public void CommandFinish(object sentObject, long sentSize, object receivedObject, long receivedSize, bool isError) { if (TimerStrategy == null || MessageBroker == null) { return; } var timerResult = TimerStrategy.Stop(start); if (receivedObject != null) { var t = receivedObject.GetType(); if (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(RedisResult <>)) { dynamic d = receivedObject; receivedObject = d.GetValueOrNull(); } } var message = new RedisTimelineMessage(usedSettings, command, key, sentObject, sentSize, receivedObject, receivedSize, isError) .AsTimelineMessage(command + ": " + (string)key, new TimelineCategoryItem(Label, Color, ColorHighlight)) .AsTimedMessage(timerResult); MessageBroker.Publish(message); }
public void Publish(object sentObject, object receivedObject, bool isError) { if (messageBroker != null && timer != null && context != null) { var timerResult = timer.Stop(offset); // Publish is called from ConfigureAwait(false) and sometimes messageBroker can't publish at doesn't have syncContext. context.Post(_ => { var message = new RedisTimelineMessage(command, key, sentObject, receivedObject, isError) .AsTimelineMessage(command + ": " + key, new TimelineCategoryItem(Label, Color, ColorHighlight)) .AsTimedMessage(timerResult); messageBroker.Publish(message); }, null); } }
public void CommandFinish(object sentObject, long sentSize, object receivedObject, long receivedSize, bool isError) { if (TimerStrategy == null || MessageBroker == null) return; var timerResult = TimerStrategy.Stop(start); if (receivedObject != null) { var t = receivedObject.GetType(); if (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(RedisResult<>)) { dynamic d = receivedObject; receivedObject = d.GetValueOrNull(); } } var message = new RedisTimelineMessage(usedSettings, command, key, sentObject, sentSize, receivedObject, receivedSize, isError) .AsTimelineMessage(command + ": " + (string)key, new TimelineCategoryItem(Label, Color, ColorHighlight)) .AsTimedMessage(timerResult); MessageBroker.Publish(message); }