From 605946a892f262bcb19a25db36d105fcc577d5bd Mon Sep 17 00:00:00 2001 From: FireFade <103326098+FireFade@users.noreply.github.com> Date: Thu, 27 Nov 2025 15:55:20 +0200 Subject: [PATCH] Update Program.cs try 1 --- RabbitMQ.DirectExchange/Producer/Program.cs | 70 ++++++++++----------- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/RabbitMQ.DirectExchange/Producer/Program.cs b/RabbitMQ.DirectExchange/Producer/Program.cs index f5bfc7e..1f932a0 100644 --- a/RabbitMQ.DirectExchange/Producer/Program.cs +++ b/RabbitMQ.DirectExchange/Producer/Program.cs @@ -1,51 +1,49 @@ -using RabbitMQ.Client; using System; using System.Text; using System.Threading; -using System.Threading.Tasks; +using RabbitMQ.Client; -namespace Producer +namespace RabbitMQ.DirectExchange.Producer { class Program { + private const string QueueName = "km23_lab_queue"; + static void Main(string[] args) { - Task.Run(CreateTask(12000, "error")); - Task.Run(CreateTask(10000, "info")); - Task.Run(CreateTask(8000, "warning")); + var factory = new ConnectionFactory + { + HostName = "localhost" + }; - Console.ReadKey(); - } + using var connection = factory.CreateConnection(); + using var channel = connection.CreateModel(); + channel.QueueDeclare( + queue: QueueName, + durable: false, + exclusive: false, + autoDelete: false, + arguments: null); - static Func CreateTask(int timeToSleepTo, string routingKey) - { - return () => + Console.WriteLine("Producer started. Press Ctrl+C to stop."); + + int counter = 1; + + while (true) { - var counter = 0; - do - { - int timeToSleep = new Random().Next(1000, timeToSleepTo); - Thread.Sleep(timeToSleep); - - var factory = new ConnectionFactory() { HostName = "localhost" }; - using (var connection = factory.CreateConnection()) - using (var channel = connection.CreateModel()) - { - channel.ExchangeDeclare(exchange: "direct_logs", type: ExchangeType.Direct); - - string message = $"Message type [{routingKey}] from publisher N {counter}"; - - var body = Encoding.UTF8.GetBytes(message); - - channel.BasicPublish(exchange: "direct_logs", - routingKey: routingKey, - basicProperties: null, - body: body); - - Console.WriteLine($"Message type [{routingKey}] is sent into Direct Exchange [N:{counter++}]"); - } - } while (true); - }; + string message = $"[{DateTime.Now:HH:mm:ss}] KM-23 lab message #{counter}"; + var body = Encoding.UTF8.GetBytes(message); + channel.BasicPublish( + exchange: "", + routingKey: QueueName, + basicProperties: null, + body: body); + + Console.WriteLine($"[x] Sent: {message}"); + + counter++; + Thread.Sleep(2000); + } } } }