feat: 添加状态监控插件和Redis原子操作支持

- 新增 `/status` 指令,展示机器人运行状态和系统指标
- 实现Redis Lua脚本支持原子化计数器操作
- 添加消息收发统计功能
- 完善文档,包括插件开发和性能优化指南
- 重构WebSocket连接池,增加健康检查机制
- 移除旧版编译脚本,优化项目结构
This commit is contained in:
2026-01-23 15:54:45 +08:00
parent 489dd8c77d
commit d458413e4b
28 changed files with 1529 additions and 1177 deletions

View File

@@ -67,5 +67,27 @@ class RedisManager(Singleton):
"""
return await self.redis.set(name, value, ex=ex)
async def execute_lua_script(self, script: str, keys: list, args: list):
"""
以原子方式执行 Lua 脚本
Args:
script (str): 要执行的 Lua 脚本字符串
keys (list): 脚本中使用的 Redis 键 (KEYS[1], KEYS[2], ...)
args (list): 传递给脚本的参数 (ARGV[1], ARGV[2], ...)
Returns:
Any: 脚本的返回值
"""
try:
# redis-py 内部会自动处理脚本的缓存 (EVAL/EVALSHA)
lua_script = self.redis.register_script(script)
return await lua_script(keys=keys, args=args)
except Exception as e:
logger.error(f"执行 Lua 脚本失败: {e}")
logger.debug(f"脚本内容: {script}")
raise
# 全局 Redis 管理器实例
redis_manager = RedisManager()