瀏覽代碼

Remove custom signal handlers (#1153)

Boxuan Li 1 年之前
父節點
當前提交
90ca29414c
共有 3 個文件被更改,包括 5 次插入24 次删除
  1. 2 8
      opendevin/server/agent/manager.py
  2. 2 8
      opendevin/server/session/manager.py
  3. 1 8
      opendevin/server/session/msg_stack.py

+ 2 - 8
opendevin/server/agent/manager.py

@@ -1,7 +1,7 @@
 import atexit
-import signal
 
 from opendevin.server.session import session_manager
+from opendevin.logger import opendevin_logger as logger
 from .agent import AgentUnit
 
 
@@ -10,8 +10,6 @@ class AgentManager:
 
     def __init__(self):
         atexit.register(self.close)
-        signal.signal(signal.SIGINT, self.handle_signal)
-        signal.signal(signal.SIGTERM, self.handle_signal)
 
     def register_agent(self, sid: str):
         """Registers a new agent.
@@ -34,11 +32,7 @@ class AgentManager:
 
         await self.sid_to_agent[sid].dispatch(action, data)
 
-    def handle_signal(self, signum, _):
-        print(f'Received signal {signum}, exiting...')
-        self.close()
-        exit(0)
-
     def close(self):
+        logger.info(f'Closing {len(self.sid_to_agent)} agent(s)...')
         for sid, agent in self.sid_to_agent.items():
             agent.close()

+ 2 - 8
opendevin/server/session/manager.py

@@ -1,11 +1,11 @@
 import atexit
 import json
 import os
-import signal
 from typing import Dict, Callable
 
 from fastapi import WebSocket
 
+from opendevin.logger import opendevin_logger as logger
 from .msg_stack import message_stack
 from .session import Session
 
@@ -19,8 +19,6 @@ class SessionManager:
     def __init__(self):
         self._load_sessions()
         atexit.register(self.close)
-        signal.signal(signal.SIGINT, self.handle_signal)
-        signal.signal(signal.SIGTERM, self.handle_signal)
 
     def add_session(self, sid: str, ws_conn: WebSocket):
         if sid not in self._sessions:
@@ -36,13 +34,9 @@ class SessionManager:
         await self._sessions[sid].loop_recv(dispatch)
 
     def close(self):
+        logger.info('Saving sessions...')
         self._save_sessions()
 
-    def handle_signal(self, signum, _):
-        print(f'Received signal {signum}, exiting...')
-        self.close()
-        exit(0)
-
     async def send(self, sid: str, data: Dict[str, object]) -> bool:
         """Sends data to the client."""
         message_stack.add_message(sid, 'assistant', data)

+ 1 - 8
opendevin/server/session/msg_stack.py

@@ -1,7 +1,6 @@
 import os
 import json
 import atexit
-import signal
 import uuid
 from typing import Dict, List
 
@@ -38,17 +37,11 @@ class MessageStack:
     def __init__(self):
         self._load_messages()
         atexit.register(self.close)
-        signal.signal(signal.SIGINT, self.handle_signal)
-        signal.signal(signal.SIGTERM, self.handle_signal)
 
     def close(self):
+        logger.info('Saving messages...')
         self._save_messages()
 
-    def handle_signal(self, signum, _):
-        logger.info('Received signal %s, exiting...', signum)
-        self.close()
-        exit(0)
-
     def add_message(self, sid: str, role: str, message: Dict[str, object]):
         if sid not in self._messages:
             self._messages[sid] = []