chawin.chen commited on
Commit
e47557c
·
1 Parent(s): 699338d
Files changed (1) hide show
  1. 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():