public async Task TestBlocking2()
        {
            var slowFlow = new SlowFlow(new DataflowOptions
                                            {
                                                FlowMonitorEnabled = true,
                                                MonitorInterval = TimeSpan.FromSeconds(5),
                                                RecommendedCapacity = 2
                                            });

            await slowFlow.SendAsync("a");
            await slowFlow.SendAsync("a");
            await slowFlow.SendAsync("a");
            await slowFlow.SendAsync("a");
            await slowFlow.SendAsync("a");
            await slowFlow.SendAsync("a");
            
            //Assert.IsTrue(slowFlow.Post("a"));
        }
示例#2
0
        public async Task TestBlocking1()
        {
            var slowFlow = new SlowFlow(new DataflowOptions
            {
                FlowMonitorEnabled  = true,
                MonitorInterval     = TimeSpan.FromSeconds(5),
                RecommendedCapacity = 2
            });

            Assert.IsTrue(slowFlow.Post("a"));
            Assert.IsTrue(slowFlow.Post("a"));
            Assert.IsFalse(slowFlow.Post("a"));
            Assert.IsFalse(slowFlow.Post("a"));
            Assert.IsFalse(slowFlow.Post("a"));
            Assert.IsFalse(slowFlow.Post("a"));

            await Task.Delay(2000);

            Assert.IsTrue(slowFlow.Post("a"));
        }
        public async Task TestBlocking1()
        {
            var slowFlow = new SlowFlow(new DataflowOptions
                                            {
                                                FlowMonitorEnabled = true,
                                                MonitorInterval = TimeSpan.FromSeconds(5),
                                                RecommendedCapacity = 2
                                            });

            Assert.IsTrue(slowFlow.Post("a"));
            Assert.IsTrue(slowFlow.Post("a"));
            Assert.IsFalse(slowFlow.Post("a"));
            Assert.IsFalse(slowFlow.Post("a"));
            Assert.IsFalse(slowFlow.Post("a"));
            Assert.IsFalse(slowFlow.Post("a"));

            await Task.Delay(2000);

            Assert.IsTrue(slowFlow.Post("a"));
        }
示例#4
0
        public async Task TestBlocking2()
        {
            var slowFlow = new SlowFlow(new DataflowOptions
            {
                FlowMonitorEnabled  = true,
                MonitorInterval     = TimeSpan.FromSeconds(5),
                RecommendedCapacity = 2
            });

            await slowFlow.SendAsync("a");

            await slowFlow.SendAsync("a");

            await slowFlow.SendAsync("a");

            await slowFlow.SendAsync("a");

            await slowFlow.SendAsync("a");

            await slowFlow.SendAsync("a");

            //Assert.IsTrue(slowFlow.Post("a"));
        }
示例#5
0
 public static async Task SlowFlowAsync()
 {
     var slowFlow = new SlowFlow( new DataflowOptions
                 {
                     FlowMonitorEnabled = true, 
                     BlockMonitorEnabled = true,
                     MonitorInterval = TimeSpan.FromSeconds(2),
                     PerformanceMonitorMode = DataflowOptions.PerformanceLogMode.Verbose
                 });
     
     await slowFlow.ProcessAsync(new[]
                                     {
                                         "abcd", 
                                         "abc", 
                                         "ab", 
                                         "a"
                                     });
     
 }