Enhanced server error handling
Add signal handling for when the process is killed
This commit is contained in:
@@ -54,6 +54,7 @@ def initialize(port: int = WOKER_PORT):
|
|||||||
import socket
|
import socket
|
||||||
import sys
|
import sys
|
||||||
import atexit
|
import atexit
|
||||||
|
import signal
|
||||||
|
|
||||||
logger.debug("initialize")
|
logger.debug("initialize")
|
||||||
global WORKER_CLIENT
|
global WORKER_CLIENT
|
||||||
@@ -100,6 +101,15 @@ def initialize(port: int = WOKER_PORT):
|
|||||||
WORKER_CLIENT = client
|
WORKER_CLIENT = client
|
||||||
atexit.register(terminate)
|
atexit.register(terminate)
|
||||||
|
|
||||||
|
# when the process is killed
|
||||||
|
def signal_handler(signum, frame):
|
||||||
|
with open("signal_handler.txt", mode="w") as f:
|
||||||
|
|
||||||
|
pass
|
||||||
|
terminate()
|
||||||
|
|
||||||
|
signal.signal(signal.SIGTERM, signal_handler)
|
||||||
|
|
||||||
|
|
||||||
# top-level declaration
|
# top-level declaration
|
||||||
def terminate():
|
def terminate():
|
||||||
|
|||||||
@@ -86,6 +86,12 @@ class WorkerServer:
|
|||||||
self.client_count -= 1
|
self.client_count -= 1
|
||||||
logger.info("close connection")
|
logger.info("close connection")
|
||||||
continue
|
continue
|
||||||
|
except Exception as e:
|
||||||
|
sock.close()
|
||||||
|
sockets.remove(sock)
|
||||||
|
self.client_count -= 1
|
||||||
|
logger.error(e)
|
||||||
|
continue
|
||||||
|
|
||||||
logger.trace(f"server received request: {request}")
|
logger.trace(f"server received request: {request}")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user