/// <summary> /// 命令消费 /// </summary> /// <param name="reciveData"></param> private void Excute(ReciveData reciveData) { //将接受到数据反序列化成命令对象 RequestCommand request; try { request = ByteUtil.ToDeserializeObject<RequestCommand>(reciveData.data.body); } catch (Exception e) { ResponseCommand response = new ResponseCommand() { errMsg = "序列化请求对象失败," + e.Message + "堆栈:" + e.StackTrace, statusCode = "440", info = "" }; string data = ByteUtil.ToSerializeObject(response); reciveData.FinshCallBack(reciveData.sessionID, data,true); TraceManagerForCommand.AppendErrMsg(response.errMsg); return; } // 序列化检查 if (request == null) { ResponseCommand response = new ResponseCommand() { errMsg = "序列化请求对象失败,", statusCode = "440", info = "" }; string data = ByteUtil.ToSerializeObject(response); reciveData.FinshCallBack(reciveData.sessionID, data, true); TraceManagerForCommand.AppendErrMsg(response.errMsg); return; } // 将委托和会话ID传递给命令对象 request.FinshCallBack = reciveData.FinshCallBack; request.sessionID = reciveData.sessionID; //命令记录 TraceManagerForCommand.AppendDebug("已获取命令ID:"+ request.ID); // 让调度开始分发给对应的子服务 this.DoRequestCommand(request); }