mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-10-09 11:02:35 +00:00
* Attempt to serialize performance optimization * Add casbin service functions return type * update comments
32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
from fastapi import APIRouter, Depends
|
|
from starlette.concurrency import run_in_threadpool
|
|
|
|
from backend.app.common.jwt import DependsJwtAuth
|
|
from backend.app.common.permission import RequestPermission
|
|
from backend.app.common.response.response_schema import ResponseModel, response_base
|
|
from backend.app.utils.server_info import server_info
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get(
|
|
'/server',
|
|
summary='server 监控',
|
|
dependencies=[
|
|
Depends(RequestPermission('sys:monitor:server')),
|
|
DependsJwtAuth,
|
|
],
|
|
)
|
|
async def get_server_info() -> ResponseModel:
|
|
"""IO密集型任务,使用线程池尽量减少性能损耗"""
|
|
data = {
|
|
'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 await response_base.success(data=data)
|