Exemple #1
0
        static void GroupConsuemrTest()
        {
            var cancellationTokenSource = new CancellationTokenSource();
            var consumerTasks           = new List <Task>();

            for (int i = 0; i < 3; i++)
            {
                consumerTasks.Add(CreateConsumerTask(i.ToString(), cancellationTokenSource));
            }


            var producer = new EQueueProducer(brokerAddress);

            producer.Start();
            while (true)
            {
                var message = Console.ReadLine();
                if (message.Equals("q"))
                {
                    cancellationTokenSource.Cancel();
                    Task.WaitAll(consumerTasks.ToArray());
                    break;
                }
                message = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffffff");
                var queueMessage = new EQueue.Protocols.Message(topic, 1, Encoding.UTF8.GetBytes(message));
                producer.Send(queueMessage, message);
                Console.WriteLine($"send message: {message}");
            }
        }
Exemple #2
0
        private static void GroupConsuemrTest()
        {
            var consumers = new List <EQueueConsumer>();

            for (var i = 0; i < 3; i++)
            {
                consumers.Add(CreateConsumer(i.ToString()));
            }
            var producer = new EQueueProducer(clusterName, NameServerList);

            producer.Start();
            while (true)
            {
                var message = Console.ReadLine();
                if (message.Equals("q"))
                {
                    consumers.ForEach(consumer => consumer.Stop());
                    break;
                }
                message = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffffff");
                var queueMessage = new Message(topic, 1, Encoding.UTF8.GetBytes(message));

                while (true)
                {
                    try
                    {
                        producer.SendAsync(queueMessage, message, CancellationToken.None)
                        .ContinueWith(t =>
                        {
                            Console.WriteLine($"send message: {message}");
                        });
                        break;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.GetBaseException().Message);
                        Thread.Sleep(2000);
                    }
                }
            }
        }