static void Main(string[] args) { var factory = new ActionDispatcherFactory(new Workerhandler()); DisaptcherToken = factory.Start(new ActionDispatcherSettings { Schedule = ScheduleType.Parallel, Timeout = TimeSpan.FromSeconds(2) }); var select = args.Length > 0 ? args[0] : default(string) ?? "complete"; Execute(select, args.Length > 1 ? int.Parse(args[1]) : 100).Wait(); if (select == "pages") { Console.ReadKey(); } Console.WriteLine("await stop"); DisaptcherToken.WaitCompleted(120); DisaptcherToken.Dispose(); Console.WriteLine("stopped success"); //Console.ReadKey(); }
public BatchFixture() { MockActionInvoker.Setup(p => p.Invoke(It.IsAny <CancellationToken>())).ReturnsAsync(Guid.NewGuid().ToString()); Factory = new ActionDispatcherFactory(MockWorkerHandler.Object); BatchActionInvoker.Setup(p => p.Invoke(It.IsAny <SomeBatchData[]>(), It.IsAny <CancellationToken>())).ReturnsAsync(Guid.NewGuid()); }
public WorkDispatcherFixture() { Factory = new ActionDispatcherFactory(MockWorkerHandler.Object); DispatcherToken = Factory.Start(new ActionDispatcherSettings { Timeout = TimeSpan.FromSeconds(10) }); }
static void Main(string[] args) { var factory = new ActionDispatcherFactory(new Workerhandler()); var stopwatch = new Stopwatch(); stopwatch.Start(); DisaptcherToken = factory.Start(new ActionDispatcherSettings { PrefetchCount = 10, Schedule = ScheduleType.ParallelLimit, Timeout = TimeSpan.FromSeconds(1.5) }); Execute(); stopwatch.Stop(); Console.WriteLine($"STOP {stopwatch.Elapsed.TotalSeconds} queue count: {DisaptcherToken.QueueProcessCount}, current count: {DisaptcherToken.ProcessCount}"); }
static void Main(string[] args) { var handler = new Workerhandler(); var factory = new ActionDispatcherFactory(); var dispatcher = factory.Start(); var bathToken = dispatcher.Plugin.Batch(p => { p.For <int>() .MaxCount(15) .Period(TimeSpan.FromSeconds(10)) .TriggerCount(5) .FlushOnStop(false) .Bind(() => { return(new BatchDataWorkerInt()); }); p.For <string>() .MaxCount(10) .Period(TimeSpan.FromSeconds(1)) //.TriggerCount(5) .FlushOnStop(true) .Bind(data => { var str = string.Join(", ", data.Select(s => s.ToString())); Console.WriteLine(str); return(Task.CompletedTask); }); }).Start(); //Task.Factory.StartNew(() => //{ // for (var i = 0; i < 50; i++) // { // if ((i % 10) == 0) // { // //await Task.Delay(200); // } // bathToken.Send(i); // } //}); Task.Factory.StartNew(async() => { for (var i = 1; i < 100; i++) { if ((i % 2) == 0) { //await Task.Delay(100); } bathToken.Send($"hello {i}"); } }); Console.ReadKey(); bathToken.Stop(); bathToken.Dispose(); dispatcher.WaitCompleted(); Console.WriteLine("stop all"); }