From 949166eaed9791be5bb198a18767ea5d31cba547 Mon Sep 17 00:00:00 2001 From: jiangweidong Date: Thu, 17 Nov 2022 09:16:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Redis=E5=93=A8=E5=85=B5=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E6=97=B6=E5=AF=BC=E8=87=B4core=E5=92=8Ccelery?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=9B=91=E5=90=AC=E7=BA=BF=E7=A8=8B=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E9=80=80=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/startup.py | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/apps/terminal/startup.py b/apps/terminal/startup.py index 7e454da83..a4c574ac2 100644 --- a/apps/terminal/startup.py +++ b/apps/terminal/startup.py @@ -3,7 +3,6 @@ import time import socket import threading from django.conf import settings -from django.db.utils import OperationalError from common.db.utils import close_old_connections from common.decorator import Singleton @@ -45,23 +44,23 @@ class BaseTerminal(object): def start_heartbeat(self): while True: - heartbeat_data = { - 'cpu_load': get_cpu_load(), - 'memory_used': get_memory_usage(), - 'disk_used': get_disk_usage(path=settings.BASE_DIR), - 'sessions': [], - } - status_serializer = StatusSerializer(data=heartbeat_data) - status_serializer.is_valid() - status_serializer.validated_data.pop('sessions', None) - terminal = self.get_or_register_terminal() - status_serializer.validated_data['terminal'] = terminal - try: + heartbeat_data = { + 'cpu_load': get_cpu_load(), + 'memory_used': get_memory_usage(), + 'disk_used': get_disk_usage(path=settings.BASE_DIR), + 'sessions': [], + } + status_serializer = StatusSerializer(data=heartbeat_data) + status_serializer.is_valid() + status_serializer.validated_data.pop('sessions', None) + terminal = self.get_or_register_terminal() + status_serializer.validated_data['terminal'] = terminal status_serializer.save() - time.sleep(self.interval) - except OperationalError: + except Exception: close_old_connections() + finally: + time.sleep(self.interval) def get_or_register_terminal(self): terminal = Terminal.objects.filter(