public void Test1() { using var st = new RedisStat(_redis, "SiteDayStat") { OnSave = OnSave }; // 降低延迟队列间隔 var q = st.GetValue("_queue") as RedisReliableQueue <String>; var dq = q.InitDelay(); dq.TransferInterval = 2; // 计算key var date = DateTime.Today; var key = $"SiteDayStat:2743-{date:MMdd}"; // 累加统计 st.Increment(key, "Total", 1); if (Rand.Next(2) > 0) { st.Increment(key, "Error", 1); } st.Increment(key, "Cost", Rand.Next(10, 100)); // 变动key进入延迟队列 st.AddDelayQueue(key, 2); Thread.Sleep(4_000); XTrace.WriteLine("Test1 finished"); }
public GatewayWithStats(string ID, string name) : base(ID, name) { JsConfig.AssumeUtc = true; redisClient = (RedisClient)redis.GetClient(); exceptions = new RedisStat(redisClient, ID + ":" + MemberInfoGetting.GetMemberName(() => exceptions)); rejects = new RedisStat(redisClient, ID + ":" + MemberInfoGetting.GetMemberName(() => rejects)); requests = new RedisStat(redisClient, ID + ":" + MemberInfoGetting.GetMemberName(() => requests)); cancels = new RedisStat(redisClient, ID + ":" + MemberInfoGetting.GetMemberName(() => cancels)); fare = new RedisStat(redisClient, ID + ":" + MemberInfoGetting.GetMemberName(() => fare)); completes = new RedisStat(redisClient, ID + ":" + MemberInfoGetting.GetMemberName(() => completes)); distance = new RedisStat(redisClient, ID + ":" + MemberInfoGetting.GetMemberName(() => distance)); }