public static async Task <T> RecordSendAndReceive <T>(RedisSettings usedSettings, RedisKey key, string callType, Func <Task <MonitorPair <T> > > executeAndReturnSentAndReceivedObject, [CallerMemberName] string commandName = "")
        {
            var            tracerFactory = usedSettings.CommandTracerFactory;
            ICommandTracer tracer        = null;

            if (tracerFactory != null)
            {
                tracer = tracerFactory();
                var command = callType + "." + commandName;

                tracer.CommandStart(usedSettings, command, key); // start within context
            }

            MonitorPair <T> pair    = null;
            bool            isError = true;

            try
            {
                pair = await executeAndReturnSentAndReceivedObject().ForAwait();

                isError = false;
            }
            finally
            {
                if (tracer != null)
                {
                    tracer.CommandFinish(pair?.SentObject, pair?.SentSize ?? 0, (pair != null) ? pair.ReceivedObject : default(T), pair?.ReceivedSize ?? 0, isError); // finish without context
                }
            }

            return((pair == null) ? default(T) : pair.ReceivedObject);
        }
        public static async Task RecordSend(RedisSettings usedSettings, RedisKey key, string callType, Func <Task <MonitorSingle> > executeAndReturnSentObject, [CallerMemberName] string commandName = "")
        {
            var            tracerFactory = usedSettings.CommandTracerFactory;
            ICommandTracer tracer        = null;

            if (tracerFactory != null)
            {
                tracer = tracerFactory();
                var command = callType + "." + commandName;

                tracer.CommandStart(usedSettings, command, key); // start within context
            }

            MonitorSingle sentObject = null;
            bool          isError    = true;

            try
            {
                sentObject = await executeAndReturnSentObject().ForAwait();

                isError = false;
            }
            finally
            {
                if (tracer != null)
                {
                    tracer.CommandFinish(sentObject?.SentObject, sentObject?.SentSize ?? 0, null, 0, isError); // finish without context
                }
            }
        }
 public static RedisResult <T> FromRedisValue <T>(RedisValue value, RedisSettings settings, out long valueSize)
 {
     if (value.IsNull)
     {
         valueSize = 0;
         return(new RedisResult <T>());
     }
     return(new RedisResult <T>(settings.ValueConverter.Deserialize <T>(value, out valueSize)));
 }
 internal RedisStructure(RedisSettings settings, RedisKey key)
 {
     this.Settings = settings;
     this.Key      = key;
 }
Beispiel #5
0
 public RedisHashBase(RedisSettings settings, RedisKey hashKey)
     : base(settings, hashKey)
 {
 }
Beispiel #6
0
 public RedisDictionary(RedisSettings settings, RedisKey hashKey)
     : base(settings, hashKey)
 {
 }
 public RedisLua(RedisSettings settings, RedisKey distributedKey)
     : base(settings, distributedKey)
 {
 }
Beispiel #8
0
 public RedisString(RedisSettings settings, RedisKey key)
     : base(settings, key)
 {
 }
 public static RedisResult <object> FromRedisValue(RedisValue value, Type valueType, RedisSettings settings, out long valueSize)
 {
     if (value.IsNull)
     {
         valueSize = 0;
         return(RedisResult <object> .NoValue);
     }
     return(new RedisResult <object>(settings.ValueConverter.Deserialize(valueType, value, out valueSize)));
 }
Beispiel #10
0
 public RedisSortedSet(RedisSettings settings, RedisKey setKey)
     : base(settings, setKey)
 {
 }
 public RedisHyperLogLog(RedisSettings settings, RedisKey key)
     : base(settings, key)
 {
 }
Beispiel #12
0
 public RedisList(RedisSettings settings, RedisKey listKey)
     : base(settings, listKey)
 {
 }