|
3 | 3 | import socket |
4 | 4 | import threading |
5 | 5 | from django.conf import settings |
6 | | -from django.db.utils import OperationalError |
7 | 6 |
|
8 | 7 | from common.db.utils import close_old_connections |
9 | 8 | from common.decorator import Singleton |
@@ -45,23 +44,23 @@ def start_heartbeat_thread(self): |
45 | 44 |
|
46 | 45 | def start_heartbeat(self): |
47 | 46 | 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 | | - |
60 | 47 | 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 |
61 | 59 | status_serializer.save() |
62 | | - time.sleep(self.interval) |
63 | | - except OperationalError: |
| 60 | + except Exception: |
64 | 61 | close_old_connections() |
| 62 | + finally: |
| 63 | + time.sleep(self.interval) |
65 | 64 |
|
66 | 65 | def get_or_register_terminal(self): |
67 | 66 | terminal = Terminal.objects.filter( |
|
0 commit comments