using PublishSubscribe; var rabbitHost = Environment.GetEnvironmentVariable("RABBIT_HOST") ?? "localhost"; var rabbitUsername = Environment.GetEnvironmentVariable("RABBIT_USERNAME") ?? "user"; var rabbitPassword = Environment.GetEnvironmentVariable("RABBIT_PASSWORD") ?? "password"; var rabbitExchange = Environment.GetEnvironmentVariable("RABBIT_EXCHANGE") ?? "SorterIn"; var rabbitQueue = Environment.GetEnvironmentVariable("RABBIT_QUEUE") ?? "SorterFirst"; var HasDelay = bool.Parse(Environment.GetEnvironmentVariable("HAS_DELAY") ?? "false"); Thread.Sleep(2000); var Receiver = new ExchangeReceiver(rabbitHost, rabbitUsername, rabbitPassword); Receiver.SubscribeTo(rabbitExchange, (message) => { var rnd = new Random(); var messageData = message.Split("|"); Console.WriteLine($"[<-]\tПришло сообщение\tId:{messageData[0]}\tType:{messageData[2]}\t Data:{string.Join(";", messageData.Skip(3))}"); if (HasDelay) { Thread.Sleep(rnd.Next(2000, 3000)); Console.WriteLine($"[\\/]\tОбработка сообщения {messageData[0]} завершена"); } else { Console.WriteLine($"[\\/]\tСообщение {messageData[0]} обрабатывается мгновенно"); } }, rabbitQueue); while (true) ;