Exemple #1
0
 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);
     }
 }
Exemple #2
0
 public bool TryEnd(CmdDetail cmd)
 {
     lock (rootlock)
     {
         if (runingcmds.Contains(cmd.CmdId))
         {
             runingcmds.Remove(cmd.CmdId);
             return(true);
         }
         return(false);
     }
 }
Exemple #3
0
 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);
     }
 }
Exemple #4
0
 /// <summary>
 /// 发送重启命令
 /// </summary>
 /// <param name="cmdarg"></param>
 private void OnRestartNode(CmdDetail cmdarg)
 {
     ServiceMaintance.SendRestartCmd();
 }