Maintain a logger and stop_event in util.Process

This commit is contained in:
George Tsiamasiotis 2024-09-30 09:39:32 +03:00
parent e576f991c8
commit 37ea7663bb

View File

@ -1,7 +1,9 @@
import logging
import multiprocessing as mp
import signal
from functools import wraps
from logging.handlers import QueueHandler
from multiprocessing.synchronize import Event
from typing import Any
import frigate.log
@ -46,6 +48,9 @@ class BaseProcess(mp.Process):
class Process(BaseProcess):
logger: logging.Logger
stop_event: Event
def before_start(self) -> None:
self.__log_queue = frigate.log.log_listener.queue
@ -53,3 +58,13 @@ class Process(BaseProcess):
if self.__log_queue:
logging.basicConfig(handlers=[], force=True)
logging.getLogger().addHandler(QueueHandler(self.__log_queue))
self.logger = logging.getLogger(self.name)
self.stop_event = mp.Event()
def receiveSignal(signalNumber, frame):
self.stop_event.set()
signal.signal(signal.SIGTERM, receiveSignal)
signal.signal(signal.SIGINT, receiveSignal)