yc_t 7 anos atrás
pai
commit
448c822014
1 arquivos alterados com 30 adições e 27 exclusões
  1. 30 27
      parkMonitor/server/CoreThread/CoreThreadTest2.cs

+ 30 - 27
parkMonitor/server/CoreThread/CoreThreadTest2.cs

@@ -122,41 +122,44 @@ namespace parkMonitor.server.CoreThread
                     {
                         while (true)
                         {
-                            queueCmd = (Command)queuingThread.GetMessage();
-                            if (queueCmd != null)
+                            if (EntityForCore.ins.globalStatus)
                             {
-                                //远端或本地异常,遇到相应指令则退回
-                                if ((!queueCmd.manual && ConnectionPoolManager.malfunctionRemote) || (queueCmd.manual && ConnectionPoolManager.malfunctionLocal))
+                                queueCmd = (Command)queuingThread.GetMessage();
+                                if (queueCmd != null)
                                 {
-                                    queueCmd.returnedCount = 1;
-                                    queuingThread.SetMessage((Command)queueCmd.Clone());
-                                    Thread.Sleep(5000);
-                                }
-                                //判断当前计数是否允许线程创建,机械手资源争抢严重则将指令丢回队列
-                                else if (queueCmd.id / 6 + 1 == Robot.robot1.id)
-                                {
-                                    if ((queueCmd.commandType=='s' && Robot.robot1.parkWaitCount >= 1) || (queueCmd.commandType=='f' && Robot.robot1.fetchWaitCount >= 1))
+                                    //远端或本地异常,遇到相应指令则退回
+                                    if ((!queueCmd.manual && ConnectionPoolManager.malfunctionRemote) || (queueCmd.manual && ConnectionPoolManager.malfunctionLocal))
                                     {
-                                        Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "等待机械手1资源线程过多:" + Robot.robot1.parkWaitCount + "," + Robot.robot1.fetchWaitCount);
-                                        queueCmd.returnedCount = 10000;
+                                        queueCmd.returnedCount = 1;
                                         queuingThread.SetMessage((Command)queueCmd.Clone());
-                                        Thread.Sleep(15000);
-                                        continue;
+                                        Thread.Sleep(5000);
                                     }
-                                }
-                                else if (queueCmd.id / 6 + 1 == Robot.robot2.id)
-                                {
-                                    if ((queueCmd.commandType == 's' && Robot.robot2.parkWaitCount >= 1) || (queueCmd.commandType == 'f' && Robot.robot2.fetchWaitCount >= 1))
+                                    //判断当前计数是否允许线程创建,机械手资源争抢严重则将指令丢回队列
+                                    else if (queueCmd.id / 6 + 1 == Robot.robot1.id)
                                     {
-                                        Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "等待机械手2资源线程过多:" + Robot.robot2.parkWaitCount + "," + Robot.robot2.fetchWaitCount);
-                                        queueCmd.returnedCount = 10000;
-                                        queuingThread.SetMessage((Command)queueCmd.Clone());
-                                        Thread.Sleep(15000);
-                                        continue;
+                                        if ((queueCmd.commandType == 's' && Robot.robot1.parkWaitCount >= 1) || (queueCmd.commandType == 'f' && Robot.robot1.fetchWaitCount >= 1))
+                                        {
+                                            Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "等待机械手1资源线程过多:" + Robot.robot1.parkWaitCount + "," + Robot.robot1.fetchWaitCount);
+                                            queueCmd.returnedCount = 10000;
+                                            queuingThread.SetMessage((Command)queueCmd.Clone());
+                                            Thread.Sleep(15000);
+                                            continue;
+                                        }
+                                    }
+                                    else if (queueCmd.id / 6 + 1 == Robot.robot2.id)
+                                    {
+                                        if ((queueCmd.commandType == 's' && Robot.robot2.parkWaitCount >= 1) || (queueCmd.commandType == 'f' && Robot.robot2.fetchWaitCount >= 1))
+                                        {
+                                            Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "等待机械手2资源线程过多:" + Robot.robot2.parkWaitCount + "," + Robot.robot2.fetchWaitCount);
+                                            queueCmd.returnedCount = 10000;
+                                            queuingThread.SetMessage((Command)queueCmd.Clone());
+                                            Thread.Sleep(15000);
+                                            continue;
+                                        }
                                     }
+                                    break;
                                 }
-                                break;
-                            }
+                            }Thread.Sleep(2000);
                         }
                     });
                     Task.WaitAll(getCmd);