public void Router() { RequestGetCMD(); if (!CanEnter()) { return; } if (cmdQueue.Count == 0) { return; } while (cmdQueue.Count > 0) { if (!TryEnter()) { break; } CmdDetail cmd = cmdQueue.TryBegin(); if (cmd == null) { break; } RouterCmd(cmd); } }
public bool TryEnd(CmdDetail cmd) { lock (rootlock) { if (runingcmds.Contains(cmd.CmdId)) { runingcmds.Remove(cmd.CmdId); return(true); } return(false); } }
public bool TryEnqueue(CmdDetail cmd) { lock (rootlock) { if (cmds.Exists(x => x.CmdId == cmd.CmdId)) { return(false); } if (runingcmds.Exists(x => x == cmd.CmdId)) { return(false); } cmds.Add(cmd); return(true); } }
/// <summary> /// 发送重启命令 /// </summary> /// <param name="cmdarg"></param> private void OnRestartNode(CmdDetail cmdarg) { ServiceMaintance.SendRestartCmd(); }