ntminer 5 years ago
parent
commit
5a3e1fc5ed

+ 5 - 13
src/WebApiServer/Core/Impl/ClientDataSet.cs

@@ -12,15 +12,13 @@ namespace NTMiner.Core.Impl {
         private const string _safeIgnoreMessage = "该消息发生的时间早于本节点启动时间1分钟,安全忽略";
 
         private readonly IMinerRedis _minerRedis;
-        IClientDataRedis _clientDataRedis;
         private readonly IMinerClientMqSender _mqSender;
-        public ClientDataSet(IMinerRedis minerRedis, IClientDataRedis clientDataRedis, IMinerClientMqSender mqSender) : base(isPull: false, getDatas: callback => {
+        public ClientDataSet(IMinerRedis minerRedis, IMinerClientMqSender mqSender) : base(isPull: false, getDatas: callback => {
             minerRedis.GetAllAsync().ContinueWith(t => {
                 callback?.Invoke(t.Result);
             });
         }) {
             _minerRedis = minerRedis;
-            _clientDataRedis = clientDataRedis;
             _mqSender = mqSender;
             // 收到Mq消息之前一定已经初始化完成,因为Mq消费者在ClientSetInitedEvent事件之后才会创建
             VirtualRoot.AddEventPath<SpeedDataMqMessage>("收到SpeedDataMq消息后更新ClientData内存", LogEnum.None, action: message => {
@@ -70,7 +68,10 @@ namespace NTMiner.Core.Impl {
                 if (_dicByObjectId.TryGetValue(message.Data.Id, out ClientData clientData)) {
                     clientData.Update(message.Data, out bool isChanged);
                     if (isChanged) {
-                        MinerSignChangedSave(MinerData.Create(clientData));
+                        var minerData = MinerData.Create(clientData);
+                        _minerRedis.SetAsync(minerData).ContinueWith(t => {
+                            _mqSender.SendMinerSignChanged(minerData.Id);
+                        });
                     }
                 }
                 else {
@@ -204,15 +205,6 @@ namespace NTMiner.Core.Impl {
             _minerRedis.SetAsync(minerData);
         }
 
-        private void MinerSignChangedSave(MinerData minerData) {
-            if (!IsReadied) {
-                return;
-            }
-            _minerRedis.SetAsync(minerData).ContinueWith(t => {
-                _mqSender.SendMinerSignChanged(minerData.Id);
-            });
-        }
-
         protected override void DoUpdateSave(IEnumerable<MinerData> minerDatas) {
             if (!IsReadied) {
                 return;

+ 0 - 12
src/WebApiServer/Core/Redis/IClientDataRedis.cs

@@ -1,12 +0,0 @@
-using NTMiner.Core.MinerServer;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-namespace NTMiner.Core.Redis {
-    public interface IClientDataRedis {
-        Task<List<ClientData>> GetAllAsync();
-        Task<ClientData> GetByIdAsync(string minerId);
-        Task SetAsync(ClientData data);
-        Task DeleteAsync(ClientData data);
-    }
-}

+ 0 - 62
src/WebApiServer/Core/Redis/Impl/ClientDataRedis.cs

@@ -1,62 +0,0 @@
-using NTMiner.Core.MinerServer;
-using StackExchange.Redis;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-namespace NTMiner.Core.Redis.Impl {
-    public class ClientDataRedis : IClientDataRedis {
-        protected const string _redisKeyClientDataById = "clientDatas.ClientDataById";// 根据Id索引ClientData对象的json
-
-        protected readonly ConnectionMultiplexer _connection;
-        public ClientDataRedis(ConnectionMultiplexer connection) {
-            _connection = connection;
-        }
-
-        public Task<List<ClientData>> GetAllAsync() {
-            var db = _connection.GetDatabase();
-            return db.HashGetAllAsync(_redisKeyClientDataById).ContinueWith(t => {
-                List<ClientData> list = new List<ClientData>();
-                foreach (var item in t.Result) {
-                    if (item.Value.HasValue) {
-                        ClientData data = VirtualRoot.JsonSerializer.Deserialize<ClientData>(item.Value);
-                        if (data != null) {
-                            list.Add(data);
-                        }
-                    }
-                }
-                return list;
-            });
-        }
-
-        public Task<ClientData> GetByIdAsync(string minerId) {
-            if (string.IsNullOrEmpty(minerId)) {
-                return Task.FromResult<ClientData>(null);
-            }
-            var db = _connection.GetDatabase();
-            return db.HashGetAsync(_redisKeyClientDataById, minerId).ContinueWith(t => {
-                if (t.Result.HasValue) {
-                    return VirtualRoot.JsonSerializer.Deserialize<ClientData>(t.Result);
-                }
-                else {
-                    return null;
-                }
-            });
-        }
-
-        public Task DeleteAsync(ClientData data) {
-            if (data == null || string.IsNullOrEmpty(data.Id)) {
-                return TaskEx.CompletedTask;
-            }
-            var db = _connection.GetDatabase();
-            return db.HashSetAsync(_redisKeyClientDataById, data.Id, VirtualRoot.JsonSerializer.Serialize(data));
-        }
-
-        public Task SetAsync(ClientData data) {
-            if (data == null || string.IsNullOrEmpty(data.Id)) {
-                return TaskEx.CompletedTask;
-            }
-            var db = _connection.GetDatabase();
-            return db.HashDeleteAsync(_redisKeyClientDataById, data.Id);
-        }
-    }
-}

+ 1 - 3
src/WebApiServer/WebApiRoot.cs

@@ -12,7 +12,6 @@ using System;
 using System.Linq;
 using System.Threading;
 using System.Web.Http;
-using System.Web.Routing;
 
 namespace NTMiner {
     public static class WebApiRoot {
@@ -69,7 +68,6 @@ namespace NTMiner {
                         var wsServerNodeMqSender = new WsServerNodeMqSender(_serverContext.Channel);
 
                         var minerRedis = new MinerRedis(_serverContext.RedisConn);
-                        var cleintDataRedis = new ClientDataRedis(_serverContext.RedisConn);
                         var userRedis = new UserRedis(_serverContext.RedisConn);
                         var captchaRedis = new CaptchaRedis(_serverContext.RedisConn);
 
@@ -79,7 +77,7 @@ namespace NTMiner {
                         CaptchaSet = new CaptchaSet(captchaRedis);
                         CalcConfigSet = new CalcConfigSet();
                         NTMinerWalletSet = new NTMinerWalletSet();
-                        ClientDataSet clientDataSet = new ClientDataSet(minerRedis, cleintDataRedis, minerClientMqSender);
+                        ClientDataSet clientDataSet = new ClientDataSet(minerRedis, minerClientMqSender);
                         ClientDataSet = clientDataSet;
                         CoinSnapshotSet = new CoinSnapshotSet(clientDataSet);
                         MineWorkSet = new UserMineWorkSet();

+ 0 - 2
src/WebApiServer/WebApiServer.csproj

@@ -148,10 +148,8 @@
     <Compile Include="Core\Mq\Senders\IUserMqSender.cs" />
     <Compile Include="Core\Mq\Senders\IWsServerNodeMqSender.cs" />
     <Compile Include="Core\Redis\ICaptchaRedis.cs" />
-    <Compile Include="Core\Redis\IClientDataRedis.cs" />
     <Compile Include="Core\Redis\IMinerRedis.cs" />
     <Compile Include="Core\Redis\Impl\CaptchaRedis.cs" />
-    <Compile Include="Core\Redis\Impl\ClientDataRedis.cs" />
     <Compile Include="Core\Redis\Impl\MinerRedis.cs" />
     <Compile Include="Core\Redis\Impl\UserRedis.cs" />
     <Compile Include="Core\Redis\IUserRedis.cs" />