static void Main(string[] args) { string memory1 = "JoerYang2018"; string memory2 = "JoerYang2019"; string missing = "JoerYang2020"; RabbitMQSender.PublishToAdmin("Publish1", memory1); RabbitMQSender.PublishToAdmin("Publish1", memory1); RabbitMQSender.PublishToAdmin("Publish2", memory2); RabbitMQSender.PublishToAdmin("PublishNew1", missing); }
private static void BindConsumer(List <RabbitMQInstance> rabbitMQInstances) { if (rabbitMQInstances == null || rabbitMQInstances.Count == 0) { return; } foreach (var rabbitMQInstance in rabbitMQInstances) { if (rabbitMQInstance == null) { continue; } var _channel = rabbitMQInstance.Connection.CreateModel(); if (_channel == null || _channel.IsClosed) { InitRabbitMQ(rabbitMQInstance); } var consumer = new EventingBasicConsumer(_channel); consumer.Received += (ch, ea) => { var msg = System.Text.Encoding.UTF8.GetString(ea.Body); if (msg == null) { return; } if (string.IsNullOrEmpty(msg)) { return; } string dateTime = DateTime.Now.ToString("yyyyMMddHHmmssfff"); Logger.Info("HandleMessage:" + dateTime); try { while (DynamicLoader.IsLoading) { Thread.Sleep(ConstValues.ReLoadSettingFileSleepTime); } IRabbitMQRecieverService rabbitMQRecieverServiceImpl = AssemblyLoader.AttachServices.FirstOrDefault(w => w.GetType().AssemblyQualifiedName == rabbitMQInstance.RabbitMQModel?.ConsumerType); if (rabbitMQRecieverServiceImpl == null) { rabbitMQRecieverServiceImpl = Activator.CreateInstance(Type.GetType(rabbitMQInstance.RabbitMQModel?.ConsumerType)) as IRabbitMQRecieverService; } rabbitMQRecieverServiceImpl?.HandleMessage(ch, ea, msg); } catch (Exception ex) { Logger.Error(ex.ToString()); Logger.Error("ContentErrorStart:" + dateTime + ":" + msg); Logger.Error("ContentErrorFinished:" + dateTime); RabbitMQSender.PublishToAdmin(rabbitMQInstance.RabbitMQModel?.PublishName, msg); } Logger.Info("Current Dealt:" + dateTime); _channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);//手动应答 }; consumer.Shutdown += OnConsumerShutdown; consumer.Registered += OnConsumerRegistered; consumer.Unregistered += OnConsumerUnregistered; consumer.ConsumerCancelled += OnConsumerConsumerCancelled; _channel.BasicConsume(queue: rabbitMQInstance.RabbitMQModel?.Queue, autoAck: false, consumer: consumer); //手动应答 } }