using System; using RabbitMQ.Client; using RabbitMQ.Client.Events; using System.Text; var фабрика = new ConnectionFactory { HostName = "localhost" }; using var подключение = фабрика.CreateConnection(); using var канал = подключение.CreateModel(); Random rand = new Random(); string имяОчередиОтклоненных = $"отклоненные{rand.Next()}"; канал.QueueDeclare(queue: имяОчередиОтклоненных); канал.QueueBind(queue: имяОчередиОтклоненных, exchange: "job", routingKey: string.Empty); Console.WriteLine(" [*] Ожидание сообщений."); var потребитель = new EventingBasicConsumer(канал); потребитель.Received += async (model, ea) => { byte[] тело = ea.Body.ToArray(); var сообщение = Encoding.UTF8.GetString(тело); int времяОжидания = rand.Next(20, 90); Thread.Sleep(времяОжидания * 100); string вывод = $"Заявка отложена {сообщение} на {времяОжидания} минут"; Console.WriteLine($" [x] Готово. {вывод}"); канал.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false); }; канал.BasicConsume(queue: имяОчередиОтклоненных, autoAck: false, consumer: потребитель); Console.WriteLine(" Нажмите [Enter] для выхода."); Console.ReadLine();