Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
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", 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);
        }
Ejemplo n.º 4
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);
        }