Exemplo n.º 1
0
        static private async Task ProducerPerformanceTestAsync()
        {
            var configManager      = CreateConfigurationManager();
            var senderFactory      = new AMQSenderFactory(new AMQConnectionFactory());
            var connectionSettings = configManager.GetConnectionSettings("defaultConnection");
            var queueSettings      = configManager.GetDestinationSettings("MY_AMQ_TEST");

            using (var producer = senderFactory.CreateText(connectionSettings, queueSettings))
            {
                while (true)
                {
                    try
                    {
                        Console.WriteLine("Provide a command: quit, clear or a number");

                        var command = Console.ReadLine();
                        if (command == "quit" || command == "exit")
                        {
                            break;
                        }

                        if (command == "clear")
                        {
                            Console.Clear();
                            continue;
                        }

                        if (!int.TryParse(command, out int count) || count < 0)
                        {
                            Console.WriteLine("Invalid iteration number");
                            continue;
                        }

                        var sw = new Stopwatch();
                        sw.Reset();
                        sw.Start();

                        for (var i = 0; i < count; i++)
                        {
                            var data = $"Message from Ross: {i}";
                            await producer.SendAsync(data);
                        }

                        sw.Stop();
                        Console.WriteLine($"Done sending: {sw.ElapsedMilliseconds}");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
        }
Exemplo n.º 2
0
        static private Task ProducerAsync()
        {
            var configManager      = CreateConfigurationManager();
            var senderFactory      = new AMQSenderFactory(new AMQConnectionFactory());
            var connectionSettings = configManager.GetConnectionSettings("defaultConnection");
            var queueSettings      = configManager.GetDestinationSettings("MY_AMQ_TEST");

            using (var sender = senderFactory.CreateText(connectionSettings, queueSettings))
            {
                sender.Send("test1");
                sender.Send("test2");
                sender.Send("test3");
                sender.Send("test4");
            }

            return(Task.CompletedTask);
        }
Exemplo n.º 3
0
        static Task PoolTestAsync()
        {
            var configManager   = CreateConfigurationManager();
            var senderFactory   = new AMQSenderFactory(new AMQConnectionFactory());
            var receiverFactory = new AMQReceiverFactory(new AMQConnectionFactory());
            var factory         = new AMQSenderReceiverFactory(senderFactory, receiverFactory);

            using (var amqPool = new AMQPoolAsync(configManager, factory, 5))
            {
                var tasks = new List <Task>();

                for (var i = 0; i < 10; i++)
                {
                    var task = Task.Run(async() =>
                    {
                        try
                        {
                            for (var j = 0; j < 10; j++)
                            {
                                using (var producer = await amqPool.GetAsync <IAMQSenderText>("defaultConnection", "MY_AMQ_TEST"))
                                {
                                    var message = $"message: {i * j}";
                                    await producer.Instance.SendAsync(message);

                                    Console.WriteLine($"{producer.PoolId} - {producer.Instance.Id} - {message}");
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex);
                        }
                    });

                    tasks.Add(task);
                }

                Console.WriteLine("Waiting for Tasks to complete...");
                Task.WaitAll(tasks.ToArray());
                Console.WriteLine("Tasks completed.");

                return(Task.CompletedTask);
            }
        }
Exemplo n.º 4
0
        static void PoolTest()
        {
            var configManager   = CreateConfigurationManager();
            var senderFactory   = new AMQSenderFactory(new AMQConnectionFactory());
            var receiverFactory = new AMQReceiverFactory(new AMQConnectionFactory());
            var factory         = new AMQSenderReceiverFactory(senderFactory, receiverFactory);

            using (var amqPoole = new AMQPool(configManager, factory, 5))
            {
                for (var i = 0; i < 10; i++)
                {
                    var t = new Thread(PoolThreadTest1);
                    t.Start(new Tuple <AMQPool, int>(amqPoole, i));
                }

                Console.WriteLine("Waiting for Tasks to complete...");
                Console.ReadKey();
            }
        }