mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 17:20:30 +08:00
refactoring
This commit is contained in:
parent
7c4ce1d863
commit
8ce08fb456
@ -38,6 +38,7 @@ from aiohttp.web import Response
|
||||
from aiohttp.web import StreamResponse
|
||||
from aiohttp.web import Application
|
||||
from aiohttp.web import run_app
|
||||
from aiohttp.web import normalize_path_middleware
|
||||
|
||||
try:
|
||||
from aiohttp.web import AccessLogger # type: ignore
|
||||
@ -230,16 +231,33 @@ class HttpServer:
|
||||
|
||||
run_app(
|
||||
sock=server_socket,
|
||||
app=self._make_app(),
|
||||
app=self.__make_app(),
|
||||
shutdown_timeout=1,
|
||||
access_log_format=access_log_format,
|
||||
print=self.__run_app_print,
|
||||
loop=asyncio.get_event_loop(),
|
||||
)
|
||||
|
||||
async def _make_app(self) -> Application:
|
||||
async def _init_app(self, app: Application) -> None:
|
||||
raise NotImplementedError
|
||||
|
||||
async def _on_shutdown(self, app: Application) -> None:
|
||||
_ = app
|
||||
|
||||
async def _on_cleanup(self, app: Application) -> None:
|
||||
_ = app
|
||||
|
||||
async def __make_app(self) -> Application:
|
||||
app = Application(middlewares=[normalize_path_middleware(
|
||||
append_slash=False,
|
||||
remove_slash=True,
|
||||
merge_slashes=True,
|
||||
)])
|
||||
app.on_shutdown.append(self._on_shutdown)
|
||||
app.on_cleanup.append(self._on_cleanup)
|
||||
await self._init_app(app)
|
||||
return app
|
||||
|
||||
def __run_app_print(self, text: str) -> None:
|
||||
logger = get_logger(0)
|
||||
for line in text.strip().splitlines():
|
||||
|
||||
@ -320,15 +320,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
|
||||
aioproc.rename_process("main")
|
||||
super().run(**kwargs)
|
||||
|
||||
async def _make_app(self) -> aiohttp.web.Application:
|
||||
app = aiohttp.web.Application(middlewares=[aiohttp.web.normalize_path_middleware(
|
||||
append_slash=False,
|
||||
remove_slash=True,
|
||||
merge_slashes=True,
|
||||
)])
|
||||
app.on_shutdown.append(self.__on_shutdown)
|
||||
app.on_cleanup.append(self.__on_cleanup)
|
||||
|
||||
async def _init_app(self, app: aiohttp.web.Application) -> None:
|
||||
self.__run_system_task(self.__stream_controller)
|
||||
for comp in self.__components:
|
||||
if comp.systask:
|
||||
@ -343,8 +335,6 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
|
||||
for ws_exposed in get_exposed_ws(api):
|
||||
self.__ws_handlers[ws_exposed.event_type] = ws_exposed.handler
|
||||
|
||||
return app
|
||||
|
||||
def __run_system_task(self, method: Callable, *args: Any) -> None:
|
||||
async def wrapper() -> None:
|
||||
try:
|
||||
@ -371,7 +361,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
|
||||
return make_json_exception(err)
|
||||
app.router.add_route(exposed.method, exposed.path, wrapper)
|
||||
|
||||
async def __on_shutdown(self, _: aiohttp.web.Application) -> None:
|
||||
async def _on_shutdown(self, _: aiohttp.web.Application) -> None:
|
||||
logger = get_logger(0)
|
||||
|
||||
logger.info("Waiting short tasks ...")
|
||||
@ -390,7 +380,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
|
||||
|
||||
logger.info("On-Shutdown complete")
|
||||
|
||||
async def __on_cleanup(self, _: aiohttp.web.Application) -> None:
|
||||
async def _on_cleanup(self, _: aiohttp.web.Application) -> None:
|
||||
logger = get_logger(0)
|
||||
for comp in self.__components:
|
||||
if comp.cleanup:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user