コード例 #1
0
        public async Task TestThreshouldReset()
        {
            var reset = new ThresholdAutoResetSignal(3, 1000);

            reset.Set();
            reset.Value.ShouldBe(false);
            reset.FireCount.ShouldBe(0);

            reset.Set();
            reset.Value.ShouldBe(false);
            reset.FireCount.ShouldBe(0);

            reset.Set();
            reset.Value.ShouldBe(true);
            reset.FireCount.ShouldBe(1);

            await Task.Delay(1000);

            reset.Value.ShouldBe(false);
            reset.FireCount.ShouldBe(1);
        }
コード例 #2
0
 public ServiceInfoBag(ServiceInfo service)
 {
     HasFailed = new ThresholdAutoResetSignal(3, 500);//3次错误才标记为异常状态,每500/1000/2000...恢复一次
     Service   = service;
 }