Fix server monitor io blocking (#404)

This commit is contained in:
Wu Clan
2024-09-05 22:46:31 +08:00
committed by GitHub
parent 24528e6050
commit 4f5c5c28e6
2 changed files with 14 additions and 7 deletions
+7 -5
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from fastapi import APIRouter, Depends
from starlette.concurrency import run_in_threadpool
from backend.common.response.response_schema import ResponseModel, response_base
from backend.common.security.jwt import DependsJwtAuth
@@ -20,10 +21,11 @@ router = APIRouter()
)
async def get_server_info() -> ResponseModel:
data = {
'cpu': server_info.get_cpu_info(),
'mem': server_info.get_mem_info(),
'sys': server_info.get_sys_info(),
'disk': server_info.get_disk_info(),
'service': server_info.get_service_info(),
# 扔到线程池,避免阻塞
'cpu': await run_in_threadpool(server_info.get_cpu_info),
'mem': await run_in_threadpool(server_info.get_mem_info),
'sys': await run_in_threadpool(server_info.get_sys_info),
'disk': await run_in_threadpool(server_info.get_disk_info),
'service': await run_in_threadpool(server_info.get_service_info),
}
return response_base.success(data=data)