feat(reverse_ws): 添加反向WebSocket支持及负载均衡功能

- 新增反向WebSocket管理器模块,支持多客户端连接
- 实现负载均衡机制,自动选择健康且负载最低的客户端
- 添加防重复事件处理机制,防止消息重复处理
- 更新配置模型和加载器以支持反向WebSocket配置
- 添加示例文件和文档说明使用方法
- 修改主程序启动逻辑以支持反向WebSocket服务
This commit is contained in:
2026-02-28 20:57:48 +08:00
parent ed4da64a7a
commit 014c6c9092
10 changed files with 769 additions and 6 deletions

View File

@@ -35,7 +35,7 @@ class ImageManager(Singleton):
# 模板缓存
self._template_cache: Dict[str, Template] = {}
async def render_template(self, template_name: str, data: Dict[str, Any], output_name: str = "output.png", quality: int = 80, image_type: str = "png") -> Optional[str]:
async def render_template(self, template_name: str, data: Dict[str, Any], output_name: str = "output.png", quality: int = 80, image_type: str = "png", width: int = 1920, height: int = 1080) -> Optional[str]:
"""
使用 Playwright 渲染 Jinja2 模板并保存为图片文件
@@ -45,6 +45,8 @@ class ImageManager(Singleton):
output_name (str, optional): 输出文件名. Defaults to "output.png".
quality (int, optional): JPEG 质量 (0-100). 仅在 image_type 为 jpeg 时有效. Defaults to 80.
image_type (str, optional): 图片类型 ('png' or 'jpeg'). Defaults to "png".
width (int, optional): 图片宽度. Defaults to 1920.
height (int, optional): 图片高度. Defaults to 1080.
Returns:
Optional[str]: 生成图片的绝对路径,如果失败则返回 None
@@ -74,8 +76,8 @@ class ImageManager(Singleton):
return None
try:
width = global_config.image_manager.image_width
height = global_config.image_manager.image_height
width = data.get("width", width)
height = data.get("height", height)
await page.set_viewport_size({"width": width, "height": height})
# 加载内容