mirror of
https://github.com/Nezumi-2711/astrbot_plugin_qq_group_daily_analysis.git
synced 2026-09-22 20:01:04 +00:00
refactor(perf): 建立三级资源防线并优化并发限流配置
- 【异常处理优化】引入自定义任务重复异常,精准区分“因重复运行而跳过”与“实际分析取消”两种不同语义,提升调度健壮性。
- 【三级并发控制架构】针对不同层级的资源消耗,建立了完整的限流保护体系:
- 入口层:控制同时处于活跃状态的任务总数,防止瞬时加载大量消息导致服务器内存溢出 (OOM);
- 接口层:全局限制 LLM API 并发请求数,确保严格遵守服务商的频率限制 (RPM);
- 渲染层:全局限制浏览器图片生成进程,保护物理 CPU 与内存不被高能耗渲染任务耗尽。
- 【配置体验升级】新增「并发限流设置」配置组,统一收纳核心性能参数,并提供面向普通用户的防坑说明与更稳健的默认值。
- 【代码清理】移除陈旧的兼容逻辑与冗余参数,统一配置命名规范。
- 【功能精化】重排增量分析逻辑,确保在任务入口与分段处理流程中均有可靠的信号量保护。
- 【细节完善】优化群文件及群相册上传设置的文案描述,明确功能支持范围与权限要求。
This commit is contained in:
@@ -19,6 +19,7 @@ from .src.application.commands.template_command_service import (
|
||||
)
|
||||
from .src.application.services.analysis_application_service import (
|
||||
AnalysisApplicationService,
|
||||
DuplicateGroupTaskError,
|
||||
)
|
||||
from .src.application.services.message_processing_service import (
|
||||
MessageProcessingService,
|
||||
@@ -515,7 +516,7 @@ class GroupDailyAnalysis(Star):
|
||||
if not await adapter.send_text(group_id, text_report):
|
||||
yield event.plain_result(text_report)
|
||||
|
||||
except asyncio.CancelledError:
|
||||
except DuplicateGroupTaskError:
|
||||
yield event.plain_result("📊 该群的分析任务正在执行中,请稍后再试哦~")
|
||||
except Exception as e:
|
||||
logger.error(f"群分析失败: {e}", exc_info=True)
|
||||
@@ -789,7 +790,7 @@ class GroupDailyAnalysis(Star):
|
||||
try:
|
||||
await self.auto_scheduler._perform_auto_analysis_for_group(group_id)
|
||||
yield event.plain_result("✅ 自动分析测试完成,请查看群消息")
|
||||
except asyncio.CancelledError:
|
||||
except DuplicateGroupTaskError:
|
||||
yield event.plain_result("📊 该群的分析任务正在执行中,请稍后再试哦~")
|
||||
except Exception as e:
|
||||
yield event.plain_result(f"❌ 自动分析测试失败: {str(e)}")
|
||||
|
||||
Reference in New Issue
Block a user