Пример #1
0
class Server(object):
    def __init__(self, host: str = "0.0.0.0", port: int = 9494):
        self._processor = Processor()
        self._response_queue = ResponseQueue()
        self._listener = Listener(host, port)

        self._init()

    def _init(self):
        self._listener.add_subscriber(self._processor.enqueue)
        self._listener.add_subscriber(log_request)
        self._processor.add_subscriber(self._response_queue.enqueue)

    def start(self):
        self._processor.start()
        self._response_queue.start()
        self._listener.listen()

    def web(self, action: Callable):
        action_name = action.__name__
        self._processor.add_action(action_name, action)