/// <summary> /// 接收来自指令中心的指令 /// </summary> /// <param name="beatMessage"></param> /// <returns></returns> public static BeatResult HeartBeat(BeatMessage beatMessage) { BeatResult result = new BeatResult() { Result = Model.BeatResultEnum.Failed }; InstructionServiceClient client = null; try { if (beatMessage != null) { client = new InstructionServiceClient(); result = client.HeartBeat(beatMessage); if (result != null && result.Result == Model.BeatResultEnum.Success) { ExecInstruction(result.TaskList.Where(t => t.TaskExecutor.Equals(beatMessage.HostIP) && t.Status == Model.TaskMessageStatusEnum.None)); } } } finally { if (client != null) { client.Close(); } } return(result); }
/// <summary> /// 注册服务 /// </summary> /// <param name="beatMessage"></param> /// <returns></returns> public bool RegisterServer(BeatMessage beatMessage) { lock (_lockObj) { if (!string.IsNullOrEmpty(beatMessage.HostIP) && !_servers.Contains(beatMessage.HostIP)) { _servers.Add(beatMessage.HostIP); } DistributedCache.Set(CacheKeys.InstuctionServerCacheKey, _servers, DateTime.Now.AddYears(1)); } return(true); }
private static void Heat(object dataBuffer) { try { BeatMessage beatMessage = new BeatMessage(); beatMessage.HostIP = ServerProfile.ServerIP; BeatResult result = InstructionServiceBusiness.HeartBeat(beatMessage); Process.Debug(ikey, "发送心跳到指令中心", "Heat", "", "发送心跳到指令中心,返回消息:" + JsonConvert.SerializeObject(result), ""); } catch (Exception ex) { Process.Error(ikey, "发送心跳到指令中心", "Heat", "", "发送心跳到指令中心,发生异常:" + ex.GetString(), ""); } finally { SystemHeatService.AddDataToBuffer(); } }
public static void Register() { ThreadPool.QueueUserWorkItem(x => { try { BeatMessage beatMessage = new BeatMessage(); beatMessage.HostIP = ServerProfile.ServerIP; bool result = InstructionServiceBusiness.RegisterServer(beatMessage); SystemHeatService.AddDataToBuffer(); Process.Info(ikey, "注册系统到指令中心", "Register", "", "注册系统到指令中心,返回消息:" + result, ""); } catch (Exception ex) { Process.Error(ikey, "注册系统到指令中心", "Register", "", "注册系统到指令中心,发生异常:" + ex.GetString(), ""); } }); }
/// <summary> /// 请求并接收指令中心的数据 /// </summary> /// <param name="beatMessage"></param> /// <returns></returns> public BeatResult HeartBeat(BeatMessage beatMessage) { lock (_lockObj) { BeatResult beatResult = new BeatResult(); beatResult.TaskList = new List <TaskMessage>(); var tempList = _taskList.Where(t => t.TaskExecutor.Equals(beatMessage.HostIP) && t.Status == TaskMessageStatusEnum.None); foreach (var item in tempList) { var msg = MappingHelper.From <TaskMessage, TaskMessage>(item); beatResult.TaskList.Add(msg); } beatResult.Result = BeatResultEnum.Success; _taskList.Where(t => t.TaskExecutor.Equals(beatMessage.HostIP)).ToList() .ForEach(t => t.Status = TaskMessageStatusEnum.Executed); DistributedCache.Add(CacheKeys.InstuctionTaskListCacheKey, _taskList, DateTime.Now.AddYears(1)); return(beatResult); } }
private void Beat() { lastBeatTime = Time.time; halfBeatCounter++; BeatMessage beatMessage = new BeatMessage(); beatMessage.Sender = gameObject; beatMessage.HalfBeatCount = HalfBeatCount; MessageBus.Instance.SendMessage(beatMessage); if (halfBeatCounter >= beatsPerBar * 2) { ResetBeatCounter(); BarMessage barMessage = new BarMessage(); barMessage.Sender = gameObject; MessageBus.Instance.SendMessage(barMessage); } }
public static bool RegisterServer(BeatMessage beatMessage) { //注册到指令中心 InstructionServiceClient client = null; bool result = false; try { if (beatMessage != null) { client = new InstructionServiceClient(); result = client.RegisterServer(beatMessage); } } finally { if (client != null) { client.Close(); } } return(result); }
private void HandleMessages() { if (messageQueue == null) { return; } ArrayList q = (ArrayList)messageQueue.Clone(); messageQueue.Clear(); foreach (MDMessage msg in q) { if (msg is DebugMessage) { if (DebugLog == null) { continue; } DebugMessage msg2 = (DebugMessage)msg; DebugLog(msg2.message); continue; } if (msg is NoteOnMessage) { if (NoteOn == null) { continue; } NoteOnMessage msg2 = (NoteOnMessage)msg; NoteOn(msg2.part, msg2.num, msg2.velocity); continue; } if (msg is NoteOffMessage) { if (NoteOff == null) { continue; } NoteOffMessage msg2 = (NoteOffMessage)msg; NoteOff(msg2.part, msg2.num); continue; } if (msg is ParamChangeMessage) { if (ParamChange == null) { continue; } ParamChangeMessage msg2 = (ParamChangeMessage)msg; ParamChange(msg2.part, msg2.param, msg2.value); continue; } if (msg is BeatTickMessage) { if (BeatTick == null) { continue; } BeatTickMessage msg2 = (BeatTickMessage)msg; BeatTick(msg2.tick, msg2.beat, msg2.bar); continue; } if (msg is BeatMessage) { if (Beat == null) { continue; } BeatMessage msg2 = (BeatMessage)msg; Beat(msg2.beat, msg2.bar); continue; } if (msg is BarMessage) { if (Bar == null) { continue; } BarMessage msg2 = (BarMessage)msg; Bar(msg2.bar); continue; } if (msg is TempoChangeMessage) { if (TempoChange == null) { continue; } TempoChangeMessage msg2 = (TempoChangeMessage)msg; TempoChange(msg2.bpm); continue; } if (msg is NewMusicalSeedMessage) { if (NewMusicalSeed == null) { continue; } NewMusicalSeedMessage msg2 = (NewMusicalSeedMessage)msg; NewMusicalSeed(msg2.name); continue; } if (msg is CueChangeMessage) { if (CueChange == null) { continue; } CueChangeMessage msg2 = (CueChangeMessage)msg; CueChange(msg2.cue, msg2.seedName, msg2.style); continue; } if (msg is ProjectLoadMessage) { if (ProjectLoad == null) { continue; } //ProjectLoadMessage msg2 = (ProjectLoadMessage)msg; ProjectLoad(); continue; } } }