chawin.chen commited on
Commit ·
e47557c
1
Parent(s): 699338d
fix
Browse files- api_routes.py +40 -0
api_routes.py
CHANGED
|
@@ -3933,6 +3933,46 @@ async def execute_system_command(payload: Dict[str, Any]):
|
|
| 3933 |
}
|
| 3934 |
|
| 3935 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3936 |
@api_router.post("/celebrity/load", tags=["Face Recognition"])
|
| 3937 |
@log_api_params
|
| 3938 |
async def load_celebrity_database():
|
|
|
|
| 3933 |
}
|
| 3934 |
|
| 3935 |
|
| 3936 |
+
|
| 3937 |
+
@api_router.post("/celebrity/keep_alive", tags=["系统维护"])
|
| 3938 |
+
@log_api_params
|
| 3939 |
+
async def celebrity_keep_cpu_alive(
|
| 3940 |
+
duration: float = Query(
|
| 3941 |
+
1.0, ge=0.1, le=60.0, description="需要保持CPU繁忙的持续时间(秒)"
|
| 3942 |
+
),
|
| 3943 |
+
intensity: int = Query(
|
| 3944 |
+
5000, ge=500, le=500000, description="控制CPU占用强度的内部循环次数"
|
| 3945 |
+
),
|
| 3946 |
+
):
|
| 3947 |
+
"""
|
| 3948 |
+
手动触发CPU保持活跃,避免云服务因空闲进入休眠。
|
| 3949 |
+
"""
|
| 3950 |
+
t_start = time.perf_counter()
|
| 3951 |
+
result = await process_cpu_intensive_task(_keep_cpu_busy, duration, intensity)
|
| 3952 |
+
total_elapsed = time.perf_counter() - t_start
|
| 3953 |
+
|
| 3954 |
+
logger.info(
|
| 3955 |
+
"Keep-alive task completed | duration=%.2fs intensity=%d iterations=%d checksum=%d cpu_elapsed=%.3fs total=%.3fs",
|
| 3956 |
+
duration,
|
| 3957 |
+
intensity,
|
| 3958 |
+
result["iterations"],
|
| 3959 |
+
result["checksum"],
|
| 3960 |
+
result["elapsed"],
|
| 3961 |
+
total_elapsed,
|
| 3962 |
+
)
|
| 3963 |
+
|
| 3964 |
+
return {
|
| 3965 |
+
"status": "ok",
|
| 3966 |
+
"requested_duration": duration,
|
| 3967 |
+
"requested_intensity": intensity,
|
| 3968 |
+
"cpu_elapsed": round(result["elapsed"], 3),
|
| 3969 |
+
"total_elapsed": round(total_elapsed, 3),
|
| 3970 |
+
"iterations": result["iterations"],
|
| 3971 |
+
"checksum": result["checksum"],
|
| 3972 |
+
"message": "CPU保持活跃任务已完成",
|
| 3973 |
+
}
|
| 3974 |
+
|
| 3975 |
+
|
| 3976 |
@api_router.post("/celebrity/load", tags=["Face Recognition"])
|
| 3977 |
@log_api_params
|
| 3978 |
async def load_celebrity_database():
|