Beispiel #1
0
        /// <summary>
        /// 供重载构造函数初始化连接参数用
        /// </summary>
        /// <param name="config"></param>
        protected void Init(RabbitMQConfigSection config)
        {
            _config     = config;
            _connection = CreateNewConnection(_config);

            // 启动连接检测线程, AutomaticRecoveryEnabled 会自动恢复连接,所以不去检测了
            // Task.Factory.StartNew(CheckConnectionAlive);
        }
Beispiel #2
0
        /// <summary>
        /// 创建新连接,并放入池中
        /// </summary>
        /// <returns></returns>
        static IConnection CreateNewConnection(RabbitMQConfigSection config)
        {
            var heartSecond = Convert.ToUInt16(config.HeartBeatSecond);

            if (heartSecond < 5)
            {
                heartSecond = 10;
            }
            ConnectionFactory connectionFactory = new ConnectionFactory
            {
                HostName = config.ServerIp,
                Port     = config.ServerPort,
                UserName = config.UserName,
                Password = config.Password,
                //Socket read timeout is twice the hearbeat
                RequestedHeartbeat       = heartSecond,
                AutomaticRecoveryEnabled = true,
            };
            var name       = string.IsNullOrEmpty(config.ConnectionName) ? "noName" : config.ConnectionName;
            var connection = connectionFactory.CreateConnection(name);

            return(connection);
        }
Beispiel #3
0
 /// <summary>
 /// 队列池构造函数
 /// </summary>
 /// <param name="config">服务器配置信息</param>
 private RabbitMQPool(RabbitMQConfigSection config)
 {
     Init(config);
 }