feat: 添加队列监控功能,支持手动触发和监控间隔设置,增强任务处理能力
This commit is contained in:
@@ -465,3 +465,48 @@ async def health_check() -> Dict[str, Any]:
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
"error": str(e)
|
||||
}
|
||||
|
||||
@monitor_router.get("/queue/status")
|
||||
async def get_queue_status():
|
||||
"""获取队列状态"""
|
||||
try:
|
||||
status = await queue_manager.get_queue_status()
|
||||
return {
|
||||
"success": True,
|
||||
"data": status,
|
||||
"timestamp": datetime.now().isoformat()
|
||||
}
|
||||
except Exception as e:
|
||||
logger.error(f"获取队列状态失败: {e}")
|
||||
raise HTTPException(status_code=500, detail=f"获取队列状态失败: {str(e)}")
|
||||
|
||||
@monitor_router.post("/queue/trigger")
|
||||
async def trigger_queue_processing():
|
||||
"""手动触发队列处理"""
|
||||
try:
|
||||
await queue_manager.trigger_queue_processing()
|
||||
return {
|
||||
"success": True,
|
||||
"message": "队列处理已手动触发",
|
||||
"timestamp": datetime.now().isoformat()
|
||||
}
|
||||
except Exception as e:
|
||||
logger.error(f"手动触发队列处理失败: {e}")
|
||||
raise HTTPException(status_code=500, detail=f"手动触发队列处理失败: {str(e)}")
|
||||
|
||||
@monitor_router.post("/queue/interval")
|
||||
async def set_monitor_interval(interval: int):
|
||||
"""设置队列监控间隔"""
|
||||
try:
|
||||
if interval < 1:
|
||||
raise HTTPException(status_code=400, detail="监控间隔不能小于1秒")
|
||||
|
||||
await queue_manager.set_monitor_interval(interval)
|
||||
return {
|
||||
"success": True,
|
||||
"message": f"队列监控间隔已设置为 {interval} 秒",
|
||||
"timestamp": datetime.now().isoformat()
|
||||
}
|
||||
except Exception as e:
|
||||
logger.error(f"设置监控间隔失败: {e}")
|
||||
raise HTTPException(status_code=500, detail=f"设置监控间隔失败: {str(e)}")
|
||||
|
||||
Reference in New Issue
Block a user