Skip to content

Commit 949166e

Browse files
O-Jiangweidongbaijiangjie
authored andcommitted
fix: Redis哨兵切换时导致core和celery组件监听线程异常退出
1 parent a2b9a5c commit 949166e

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

apps/terminal/startup.py

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import socket
44
import threading
55
from django.conf import settings
6-
from django.db.utils import OperationalError
76

87
from common.db.utils import close_old_connections
98
from common.decorator import Singleton
@@ -45,23 +44,23 @@ def start_heartbeat_thread(self):
4544

4645
def start_heartbeat(self):
4746
while True:
48-
heartbeat_data = {
49-
'cpu_load': get_cpu_load(),
50-
'memory_used': get_memory_usage(),
51-
'disk_used': get_disk_usage(path=settings.BASE_DIR),
52-
'sessions': [],
53-
}
54-
status_serializer = StatusSerializer(data=heartbeat_data)
55-
status_serializer.is_valid()
56-
status_serializer.validated_data.pop('sessions', None)
57-
terminal = self.get_or_register_terminal()
58-
status_serializer.validated_data['terminal'] = terminal
59-
6047
try:
48+
heartbeat_data = {
49+
'cpu_load': get_cpu_load(),
50+
'memory_used': get_memory_usage(),
51+
'disk_used': get_disk_usage(path=settings.BASE_DIR),
52+
'sessions': [],
53+
}
54+
status_serializer = StatusSerializer(data=heartbeat_data)
55+
status_serializer.is_valid()
56+
status_serializer.validated_data.pop('sessions', None)
57+
terminal = self.get_or_register_terminal()
58+
status_serializer.validated_data['terminal'] = terminal
6159
status_serializer.save()
62-
time.sleep(self.interval)
63-
except OperationalError:
60+
except Exception:
6461
close_old_connections()
62+
finally:
63+
time.sleep(self.interval)
6564

6665
def get_or_register_terminal(self):
6766
terminal = Terminal.objects.filter(

0 commit comments

Comments
 (0)