コード例 #1
0
        public void Add(ConnectionSettingModel model)
        {
            lock (_key)
            {
                _cache.Add(model);

                Save();
            }
        }
コード例 #2
0
        public async Task <bool> TryConnectAsync(ConnectionSettingModel settings, bool save = true)
        {
            var options = new ConfigurationOptions()
            {
                Password       = settings.Password,
                ConnectTimeout = settings.Timeout * 1000,               // ms
                AsyncTimeout   = settings.Timeout * 1000,               // ms


                AllowAdmin         = settings.AllowAdmin,
                ClientName         = "MYRDM",
                AbortOnConnectFail = false,

                ConnectRetry = 10,
            };

            options.EndPoints.Add(settings.Host, settings.Port);

            ConnectionMultiplexer connection = await ConnectionMultiplexer.ConnectAsync(options);

            connection.ConnectionFailed += (sender, e) =>
            {
                Debug.WriteLine(e.Exception.ToString());
            };

            var isConnected = connection.IsConnected;

            if (!isConnected)
            {
                await Task.Delay(TimeSpan.FromSeconds(1.5));

                var server = connection.GetServer(connection.GetEndPoints().First());

                var ping = await server.PingAsync();

                isConnected = connection.IsConnected;
            }

            if (save)
            {
                _connections[settings.Guid] = connection;
            }
            else
            {
                //await connection.CloseAsync();
            }

            return(isConnected);
        }
コード例 #3
0
        public void Update(ConnectionSettingModel model)
        {
            lock (_key)
            {
                var temp = _cache.FirstOrDefault(t => t.Guid == model.Guid);
                temp.Name       = model.Name;
                temp.Host       = model.Host;
                temp.Password   = model.Password;
                temp.Port       = model.Port;
                temp.Timeout    = model.Timeout;
                temp.AllowAdmin = model.AllowAdmin;

                Save();
            }
        }
コード例 #4
0
 public bool TestConnection(ConnectionSettingModel connection)
 {
     throw new NotImplementedException();
 }
コード例 #5
0
        public async Task <bool> TestConnectionAsync(ConnectionSettingModel connection)
        {
            var result = await _redisClientService.TryConnectAsync(connection, false);

            return(result);
        }