Pārlūkot izejas kodu

20221227, huli 出口单片机, 重启数据库通信

huli 2 gadi atpakaļ
vecāks
revīzija
9e8acb0e85
2 mainītis faili ar 14 papildinājumiem un 3 dzēšanām
  1. 8 2
      出口单片机节点/ExportIO.py
  2. 6 1
      出口单片机节点/node.py

+ 8 - 2
出口单片机节点/ExportIO.py

@@ -31,11 +31,15 @@ class ExportIO(threading.Thread):
         self._rabbit_mq=ASC.RabbitAsyncCommunicator(rabbitmq_parameter["ip"],rabbitmq_parameter["port"],
                                                     rabbitmq_parameter['user'],rabbitmq_parameter['password'])
 
-
         #消费关门消息
         self._rabbit_mq.Init(None, None)
         self._rabbit_mq.start()
 
+        #数据库重试的次数, 超过3次就重启数据库梁
+        self._retry_count = 0
+
+
+
     def SetUserLeaveCallback(self,callback):
         self._user_leave_callback=callback
 
@@ -54,6 +58,7 @@ class ExportIO(threading.Thread):
     #open_door 函数被node_py的主函数调用,不要做太多的事,剩余的开门控制和数据库清理,交给open_door_loop
     def open_door(self,table):
         self._open_door_flag = True
+        self._retry_count = self._retry_count +1
         return
 
     async def open_door_loop(self):
@@ -74,7 +79,8 @@ class ExportIO(threading.Thread):
                         if not self._user_leave_callback == None:
                             self._user_leave_callback(self._id)
                             self._open_door_flag = False
-                    #else  无限等待,什么也不做,  等待汽车离开
+                    else:#else  无限等待,什么也不做,  等待汽车离开
+                        self._retry_count = 0
 
             except:
                 pass

+ 6 - 1
出口单片机节点/node.py

@@ -62,7 +62,12 @@ if __name__=="__main__":
                     export=g_exports.get(table.export_id)
                     if not export==None:
                         # if export.export_idle()==False:
-                        export.open_door(table)
+                        if export._retry_count < 5:
+                            export.open_door(table)
+                        else :
+                            g_db.close()
+                            g_db.__init__(db_parameter["ip"],db_parameter["port"],db_parameter["dbname"],
+                                          db_parameter["user"],db_parameter["password"])
 
         time.sleep(1)