private static void TestEnqueue([Required] string queue, [MoreThan(0)][LessThan(100001)] uint count = 10000, bool events = false) { Stopwatch stopwatch = new Stopwatch(); if (events) { MyClass myObject = new MyClass(); RoqueEventBroadcaster broadcaster = new RoqueEventBroadcaster(queue); broadcaster.SubscribeToAll <INotifyPropertyChanged>(myObject); stopwatch.Start(); for (int i = 1; i <= count; i++) { myObject.Name = "New value #" + i; } } else { var traceProxy = RoqueProxyGenerator.Create <ITrace>(Queue.Get(queue)); stopwatch.Start(); for (int i = 1; i <= count; i++) { traceProxy.TraceVerbose("TEST MESSAGE #" + i); } } stopwatch.Stop(); Console.WriteLine("{0} jobs enqueued", count); Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed); }
private static void DoTestEnqueue([Required] string queue, [MoreOrEqualTo(1)][LessThan(100001)][CLAP.DefaultValue((uint)1)] uint count = 1, bool events = false, string target = null, string method = null, IEnumerable <string> arguments = null) { Console.WriteLine("count=" + count); Stopwatch stopwatch = new Stopwatch(); if (!string.IsNullOrWhiteSpace(target)) { var job = Job.Create(target, method); job.IsEvent = events; if (arguments != null) { job.Arguments = arguments.ToArray(); } var targetQueue = Queue.Get(queue); stopwatch.Start(); for (int i = 1; i <= count; i++) { job.CreationUtc = DateTime.UtcNow; if (!targetQueue.Enqueue(job)) { break; } } } else { if (events) { MyClass myObject = new MyClass(); RoqueEventBroadcaster broadcaster = new RoqueEventBroadcaster(queue); broadcaster.SubscribeToAll <INotifyPropertyChanged>(myObject); stopwatch.Start(); for (int i = 1; i <= count; i++) { myObject.Name = "New value #" + i; } } else { var traceProxy = RoqueProxyGenerator.Create <ITrace>(Queue.Get(queue)); stopwatch.Start(); for (int i = 1; i <= count; i++) { traceProxy.TraceVerbose("TEST MESSAGE #" + i); } } } stopwatch.Stop(); Console.WriteLine("{0} jobs enqueued", count); Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed); }