public Task Run(TestPerformanceParameters args, CancellationToken cancellationToken) { var publishInterval = args.PublishInterval; var messageSize = args.MessageSize; Console.Out.WriteLine("publishInterval = {0}", publishInterval); Console.Out.WriteLine("messageSize = {0}", messageSize); bus = RabbitHutch.CreateBus("host=localhost;publisherConfirms=true;timeout=10;requestedHeartbeat=5;product=producer", c => c.EnableMultiChannelClientCommandDispatcher(2)); var messageCount = 0; var faultMessageCount = 0; messageRateTimer = new Timer(state => { Console.Out.WriteLine("messages per second = {0}", messageCount); Console.Out.WriteLine("fault messages per second = {0}", faultMessageCount); Interlocked.Exchange(ref messageCount, 0); Interlocked.Exchange(ref faultMessageCount, 0); }, null, 1000, 1000); cancelled = false; publishThread = new Thread(state => { while (!cancelled) { var text = new string('#', messageSize); var message = new TestPerformanceMessage { Text = text }; try { bus.PubSub.PublishAsync(message).ContinueWith(task => { if (task.IsCompleted) { Interlocked.Increment(ref messageCount); } if (task.IsFaulted || task.IsCanceled) { Interlocked.Increment(ref faultMessageCount); } }); } catch (EasyNetQException easyNetQException) { Console.Out.WriteLine(easyNetQException.Message); Thread.Sleep(1000); } } }); publishThread.Start(); Console.Out.WriteLine("Timer running, enter to end"); Console.ReadLine(); return(Task.FromResult(0)); }
public static void Main(string[] args) { var publishInterval = 0; var messageSize = 1000; if (args.Length > 0) { publishInterval = int.Parse(args[0]); } if (args.Length > 1) { messageSize = int.Parse(args[1]); } Console.Out.WriteLine("publishInterval = {0}", publishInterval); Console.Out.WriteLine("messageSize = {0}", messageSize); var bus = RabbitHutch.CreateBus("host=localhost;publisherConfirms=true;timeout=10;requestedHeartbeat=5;product=producer", x => x.Register <IEasyNetQLogger>(_ => new NoDebugLogger())); var messageCount = 0; var messageRateTimer = new Timer(state => { Console.Out.WriteLine("messages per second = {0}", messageCount); Interlocked.Exchange(ref messageCount, 0); }, null, 1000, 1000); var cancelled = false; var publishThread = new Thread(state => { while (!cancelled) { var text = new string('#', messageSize); var message = new TestPerformanceMessage { Text = text }; try { bus.PublishAsync(message).ContinueWith(task => { if (task.IsCompleted) { Interlocked.Increment(ref messageCount); } if (task.IsFaulted) { Console.WriteLine(task.Exception); } }); } catch (EasyNetQException easyNetQException) { Console.Out.WriteLine(easyNetQException.Message); Thread.Sleep(1000); } } }); publishThread.Start(); Console.Out.WriteLine("Timer running, ctrl-C to end"); Console.CancelKeyPress += (source, cancelKeyPressArgs) => { Console.Out.WriteLine("Shutting down"); cancelled = true; publishThread.Join(); messageRateTimer.Dispose(); bus.Dispose(); Console.WriteLine("Shut down complete"); }; Thread.Sleep(Timeout.Infinite); }
public static void Main(string[] args) { var publishInterval = 0; var messageSize = 1000; if (args.Length > 0) { publishInterval = int.Parse(args[0]); } if (args.Length > 1) { messageSize = int.Parse(args[1]); } Console.Out.WriteLine("publishInterval = {0}", publishInterval); Console.Out.WriteLine("messageSize = {0}", messageSize); var bus = RabbitHutch.CreateBus("host=localhost", new NoDebugLogger()); int messageCount = 0; var messageRateTimer = new Timer(state => { Console.Out.WriteLine("messages per second = {0}", messageCount); Interlocked.Exchange(ref messageCount, 0); }, null, 1000, 1000); var cancelled = false; var publishThread = new Thread(state => { while (!cancelled) { var text = new string('#', messageSize); var message = new TestPerformanceMessage { Text = text }; try { using (var publishChannel = bus.OpenPublishChannel()) { publishChannel.Publish(message); } Interlocked.Increment(ref messageCount); } catch (EasyNetQException easyNetQException) { Console.Out.WriteLine(easyNetQException.Message); Thread.Sleep(1000); } } }); publishThread.Start(); Console.Out.WriteLine("Timer running, ctrl-C to end"); Console.CancelKeyPress += (source, cancelKeyPressArgs) => { Console.Out.WriteLine("Shutting down"); cancelled = true; publishThread.Join(); messageRateTimer.Dispose(); bus.Dispose(); Console.WriteLine("Shut down complete"); }; Thread.Sleep(Timeout.Infinite); }
public static void Main(string[] args) { var publishInterval = 0; var messageSize = 1000; if (args.Length > 0) { publishInterval = int.Parse(args[0]); } if (args.Length > 1) { messageSize = int.Parse(args[1]); } Console.Out.WriteLine("publishInterval = {0}", publishInterval); Console.Out.WriteLine("messageSize = {0}", messageSize); var bus = RabbitHutch.CreateBus("host=localhost;publisherConfirms=true;timeout=10;requestedHeartbeat=5;product=producer", x => x.Register<IEasyNetQLogger>(_ => new NoDebugLogger())); var messageCount = 0; var messageRateTimer = new Timer(state => { Console.Out.WriteLine("messages per second = {0}", messageCount); Interlocked.Exchange(ref messageCount, 0); }, null, 1000, 1000); var cancelled = false; var publishThread = new Thread(state => { while (!cancelled) { var text = new string('#', messageSize); var message = new TestPerformanceMessage { Text = text }; try { bus.PublishAsync(message).ContinueWith(task => { if (task.IsCompleted) { Interlocked.Increment(ref messageCount); } if (task.IsFaulted) { Console.WriteLine(task.Exception); } }); } catch (EasyNetQException easyNetQException) { Console.Out.WriteLine(easyNetQException.Message); Thread.Sleep(1000); } } }); publishThread.Start(); Console.Out.WriteLine("Timer running, ctrl-C to end"); Console.CancelKeyPress += (source, cancelKeyPressArgs) => { Console.Out.WriteLine("Shutting down"); cancelled = true; publishThread.Join(); messageRateTimer.Dispose(); bus.Dispose(); Console.WriteLine("Shut down complete"); }; Thread.Sleep(Timeout.Infinite); }