コード例 #1
0
        public void OverviewTest()
        {
            RabbitMQModel result = RabbitMQManager.GetOverview();

            Assert.IsNotNull(result.MessageStats);
            Assert.IsNotNull(result.QueueTotals);
            Assert.IsNotNull(result);
        }
コード例 #2
0
        /// <summary>
        /// 接收命令处理
        /// </summary>
        private static void ReceiveCommandLoop()
        {
            LogHelper.WriteInfo("准备接收消息");
            RabbitMQModel model = new RabbitMQModel();

            model.HostName  = "localhost";
            model.UserName  = "******";
            model.Password  = "******";
            model.QueueName = "NodeService";
            RabbitMQHelper.Receive(model, (c) =>
            {
                if (!string.IsNullOrEmpty(c))
                {
                    LogHelper.WriteInfo("接收消息" + c);
                    Command cmd = LibJsonConvert.DeserializeObject <Command>(c);
                    CommandFactory.Execute(cmd);
                }
            });
        }
コード例 #3
0
        public bool Connection(HostModel hostModel)
        {
            bool          sflag         = true;
            RabbitMQModel rabbitMQModel = null;
            Dictionary <string, RabbitMQModel> rabbitmqDictionary = RabbitMQServices.GetInstance().GetRabbitMQconn();

            if (rabbitmqDictionary.Count > 0)
            {
                rabbitMQModel = rabbitmqDictionary["test"];
            }
            else
            {
                rabbitMQModel = new RabbitMQModel(hostModel);
                lock (rabbitmqDictionary)
                {
                    RabbitMQServices.GetInstance().SetRabbitMqConn("test", rabbitMQModel);
                    rabbitMQModel.Connection();
                }
            }
            return(sflag);
        }
コード例 #4
0
        public static RabbitMQInstance GetRabbitMQInstance(RabbitMQModel rabbitMQModel)
        {
            if (rabbitMQModel == null)
            {
                return(null);
            }
            var _factory = new ConnectionFactory
            {
                HostName    = rabbitMQModel.HostName,
                Port        = rabbitMQModel.Port,
                VirtualHost = rabbitMQModel.VirtualHost,
                UserName    = rabbitMQModel.UserName,
                Password    = rabbitMQModel.Password
            };
            var _connection    = _factory.CreateConnection();
            var _rabbitMQModel = rabbitMQModel;
            var _channel       = _connection.CreateModel();
            var instance       = new RabbitMQInstance(_factory, _connection, _rabbitMQModel);

            _channel.ExchangeDeclare(rabbitMQModel.Exchange, ExchangeType.Direct, durable: true, autoDelete: false, arguments: null);
            _channel.QueueDeclare(rabbitMQModel.Queue, durable: true, exclusive: false, autoDelete: false, arguments: null);
            _channel.QueueBind(rabbitMQModel.Queue, rabbitMQModel.Exchange, rabbitMQModel.RoutingKey, null);
            return(instance);
        }
コード例 #5
0
        public static RabbitMQModel GetRabbitMQModel(IConfigurationSection publish)
        {
            if (publish == null)
            {
                return(null);
            }
            RabbitMQModel rabbitMQModel = new RabbitMQModel();

            rabbitMQModel.PublishName  = publish.GetSection("PublishName").Value;
            rabbitMQModel.ConsumerType = publish.GetSection("ConsumerType").Value;
            rabbitMQModel.Exchange     = publish.GetSection("Exchange").Value;
            rabbitMQModel.HostName     = publish.GetSection("HostName").Value;
            rabbitMQModel.Password     = publish.GetSection("Password").Value;
            string sPort = publish.GetSection("Port").Value;
            int    port  = 0;

            int.TryParse(sPort, out port);
            rabbitMQModel.Port        = port;
            rabbitMQModel.Queue       = publish.GetSection("Queue").Value;
            rabbitMQModel.RoutingKey  = publish.GetSection("RoutingKey").Value;
            rabbitMQModel.UserName    = publish.GetSection("UserName").Value;
            rabbitMQModel.VirtualHost = publish.GetSection("VirtualHost").Value;
            return(rabbitMQModel);
        }
コード例 #6
0
 private RabbitMQInstance(ConnectionFactory _factory, IConnection _connection, RabbitMQModel _rabbitMQModel)
 {
     this.Connection    = _connection;
     this.Factory       = _factory;
     this.Channel       = Connection.CreateModel();
     this.RabbitMQModel = _rabbitMQModel;
 }
コード例 #7
0
 public DirectPost(HostModel hostModel)
 {
     rabbitMQModel = new RabbitMQModel(hostModel);
     rabbitMQModel.Connection();
 }