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);
        }
示例#2
0
            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);
        }
            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);
                }
            }