public static void ServiceRunning()
 {
     RedisHelper.RedisListner((channel, msg) =>
     {
         try
         {
             //msg = "{'CommondType':2,'nodeid':1}";
             RedisCommondInfo redisCommondInfo = null;
             redisCommondInfo = new BSF.Serialization.JsonProvider().Deserialize <RedisCommondInfo>(msg);
             if (redisCommondInfo != null)
             {
                 if (redisCommondInfo.CommondType == EnumCommondType.TaskCommand && redisCommondInfo.NodeId == GlobalConfig.NodeID)
                 {
                     RunCommond();
                 }
                 else if (redisCommondInfo.CommondType == EnumCommondType.ConfigUpdate)
                 {
                     RedisHelper.RefreashRedisServerIP();
                 }
             }
         }
         catch (Exception ex)
         {
             LogHelper.AddNodeError($"Redis获取订阅消息出错,{ex.Message}", ex);
         }
     }, (info) =>
     {
         if (info != null)
         {
             LogHelper.AddNodeError("Redis订阅出错," + info.Message.NullToEmpty(), info.Exception);
         }
     });
 }
예제 #2
0
        static void Running()
        {
            //lastMaxID = 0;//仅测试
            RecoveryStartTasks();

            RedisHelper.RedisListner((channel, msg) =>
            {
                try
                {
                    RedisCommondInfo redisCommondInfo = null;
                    try { redisCommondInfo = new BSF.Serialization.JsonProvider().Deserialize <RedisCommondInfo>(msg); } catch { }
                    if (redisCommondInfo != null)
                    {
                        if (redisCommondInfo.CommondType == EnumCommondType.TaskCommand && redisCommondInfo.NodeId == GlobalConfig.NodeID)
                        {
                            RunCommond();
                        }
                        if (redisCommondInfo.CommondType == EnumCommondType.ConfigUpdate)
                        {
                            RedisHelper.RefreashRedisServerIP();
                        }
                    }
                    else
                    {
                        throw new Exception("redis命令无法识别");
                    }
                }
                catch (Exception exp)
                {
                    LogHelper.AddNodeError("Redis命令处理出错,msg:" + msg.NullToEmpty(), exp);
                }
            }, (info) =>
            {
                if (info != null)
                {
                    LogHelper.AddNodeError("Redis订阅出错," + info.Message.NullToEmpty(), info.Exception);
                }
            });

            RuningCommandLoop();
        }