Commit Graph

53 Commits

Author SHA1 Message Date
Liu
47d623e4a4 Reapply "修复菜单插件超时拖慢主链路问题"
This reverts commit 34adefa931.
2026-05-01 12:45:29 +08:00
Liu
34adefa931 Revert "修复菜单插件超时拖慢主链路问题"
This reverts commit 1b6da6db1f.
2026-05-01 12:12:55 +08:00
Liu
1b6da6db1f 修复菜单插件超时拖慢主链路问题
1. 为菜单图片发送增加独立的同步等待预算,避免单次菜单命令长时间占用消息处理协程。

2. 调整菜单插件外层处理超时与文本回退空间,避免内外层超时重合导致降级逻辑来不及执行。

3. 修复 md2img 专用运行时在超时/取消时未显式取消后台任务的问题,减少渲染残留任务堆积。
2026-05-01 11:08:49 +08:00
liuwei
3e93188efb 支持html转图传入视口宽度并在总结模板中透传配置 2026-04-23 11:27:37 +08:00
liuwei
23d2f2562e 启用md2img强保活模式:移除浏览器主动关闭逻辑
1. safe_close_browser 改为保活模式下直接返回,不执行 browser.close\n2. 去除 safe_close_browser 中的 terminate/kill 进程树逻辑\n3. 保留函数签名与调用链,确保现有流程兼容\n4. 增加中文注释说明长期常驻场景下的设计意图
2026-04-17 11:46:35 +08:00
liuwei
cc5c49954f 调整md2img保活策略:取消截图后立即重建,改为心跳确认后再自愈
1. 去除截图后探测失败即刻 restart_browser 的逻辑\n2. 改为仅记录告警并推进断连计数,交由心跳任务统一确认后重建\n3. 保留截图失败时的重试重建能力,避免功能不可用\n4. 增加详细中文注释,明确保活优先与误判抑制设计
2026-04-17 11:44:28 +08:00
liuwei
02e34960d3 优化md2img浏览器健康探测,减少截图后误判断连重建
1. _is_browser_alive 增加短重试机制,避免单次瞬时失败被判定为断连\n2. 截图后健康检查由单次探测改为多次探测(超时与间隔可控)\n3. 保留真实断连自动重建能力,但降低误触发概率\n4. 补充详细中文注释,说明探测策略与设计意图
2026-04-17 11:27:27 +08:00
liuwei
1cf2cfd6e3 修复md2img运行时并发单例问题,避免预热双启动日志 2026-04-17 10:28:35 +08:00
liuwei
3d98b3c0a2 修复转图运行时重复启动与高频误重建问题
变更项:\n1. 修复 md2img 运行时并发启动竞争,新增启动中标记,避免同名线程被重复拉起。\n2. 优化浏览器心跳探测策略:由高频激进重建改为断连连续判定后再重建,降低误判。\n3. 新增截图进行中保护,截图期间心跳跳过探测,避免与业务并发导致误重建。\n4. 为浏览器重建增加 reason 日志字段,便于线上追踪重建触发原因。\n5. 保留截图后断连自愈能力,但改为更稳健的触发路径,减少无意义重建。
2026-04-17 10:26:10 +08:00
liuwei
97bc4560b6 增强转图浏览器保活:截图后探活并自动重建,增加后台心跳巡检 2026-04-17 10:14:04 +08:00
liuwei
2a87863d9c 修复转图任务返回时序误判:等待runtime任务完成后再返回,避免先报失败后截图 2026-04-17 10:12:15 +08:00
liuwei
c49f5e509c 新增转图运行时健康监控与手动预热
变更项:\n1. 在 markdown_to_image 增加 get_md2img_health_snapshot 健康快照能力,输出 runtime 线程、事件循环、浏览器连接、启动来源与 PID 状态。\n2. 新增系统接口 GET /api/system/md2img_health,支持后台查询转图运行时健康信息。\n3. 新增系统接口 POST /api/system/md2img_warmup,支持后台手动触发转图预热并返回最新状态。\n4. 在资源监控页面接入转图健康状态条,展示运行时在线状态、浏览器连接状态及关键摘要信息。\n5. 在资源监控页面增加转图预热与状态刷新按钮,便于线上快速自愈与排障。\n6. 补充中文注释与错误提示,保持后端与前端可观测性一致。
2026-04-17 10:04:18 +08:00
liuwei
5a84c60b2c 统一转图为单运行时常驻浏览器
变更项:\n1. 新增 md2img 专用运行时(独立线程 + 单事件循环),确保浏览器生命周期只在一个 loop 内维护。\n2. 新增运行时任务投递与异步等待封装,支持任意调用方线程/loop 统一提交截图任务。\n3. 调整浏览器预热逻辑:预热改为在 md2img 专用运行时执行,避免预热与业务截图分属不同 loop。\n4. 调整 html_to_image:统一在专用运行时内完成截图,彻底规避跨事件循环复用导致的重建。\n5. 增强中文注释与运行日志,便于定位 runtime loop 与预热状态。
2026-04-17 10:00:25 +08:00
liuwei
3b9bd02b5f 修复转图浏览器预热跨事件循环失效问题
变更项:\n1. 新增 async_job 启动钩子能力 add_startup_job,在调度器事件循环中执行一次性初始化任务。\n2. 将 main.py 的 Markdown 转图预热从独立线程改为调度器 loop 内执行,确保预热实例可被后续任务复用。\n3. 增强 markdown_to_image 常驻浏览器管理:记录 owner loop、检测跨 loop 复用并自动重建。\n4. 补充预热与常驻浏览器日志,输出 loop 标识和浏览器 PID,便于线上排查进程状态。\n5. 保持现有转图超时与重试逻辑不变,仅修复预热生效链路与可观测性。
2026-04-17 09:55:03 +08:00
liuwei
6af91756d3 支持服务启动后自动预热转图浏览器
变更项:1) markdown_to_image 新增预热方法 warmup_md2img_browser/warmup_md2img_browser_sync,用于提前拉起常驻浏览器。2) main.py 启动流程新增后台预热线程,服务启动后自动执行转图浏览器预热。3) 预热失败仅记录日志不阻塞主服务,运行期仍可按需自动重建浏览器。4) 补充中文注释说明预热目的与降级策略。
2026-04-17 09:28:36 +08:00
liuwei
f90c0720b3 实现转图浏览器常驻复用并支持失败自动重建
变更项:1) 新增常驻浏览器管理器,避免每次截图都冷启动 Chromium。2) 截图流程改为复用同一 Browser,每次仅创建并关闭 context/page,提升稳定性与性能。3) 增加浏览器失联检测与自动重建机制,截图失败后重建一次并重试。4) 保留多候选浏览器启动策略(system/playwright-cache/bundled),并输出准确来源日志。5) 补充中文注释,明确常驻设计目标与故障恢复逻辑。
2026-04-17 09:26:23 +08:00
liuwei
43c334354f 增强转图浏览器启动健壮性并修正日志来源标识
变更项:1) html_to_image 改为候选浏览器逐个尝试启动,避免单一路径失败导致整体异常。2) Linux 增加系统浏览器路径探测(google-chrome/chromium)并保留 Playwright 缓存路径作为候选。3) 修正启动日志来源标识,区分 system 与 playwright-cache,避免误判。4) 所有候选失败时自动回退到 bundled 浏览器,提高转图成功率。
2026-04-17 09:18:02 +08:00
liuwei
55c3b951d5 修复群总结转图假死:增加阶段进度日志与超时保护
变更项:1) 移除图片渲染前截断,保持完整内容转图。2) 群总结转图增加总超时,超时后快速降级文本,避免任务长期阻塞。3) markdown_to_image 增加每10秒进度心跳日志,定位卡在 markdown_to_html 或 html_to_image。4) 分阶段超时与阶段开始日志完善,解决无错误无进度的问题。
2026-04-17 09:16:26 +08:00
liuwei
b10ec3493a feat(message_summary): beautify overview stats pills 2026-04-13 09:54:42 +08:00
liuwei
66f4a3e604 feat(douyu): add daily danmu report pipeline 2026-04-08 13:17:29 +08:00
liuwei
63448eb28c fix: restore markdown-based summary hero extraction 2026-03-21 15:12:37 +08:00
liuwei
bbbfa32263 style: enhance summary hero section 2026-03-21 14:18:03 +08:00
liuwei
d5619db571 perf: improve markdown image rendering 2026-03-21 13:38:03 +08:00
liuwei
839d351d18 style: optimize summary image rendering 2026-03-21 12:33:54 +08:00
liuwei
93871417f8 总结优化 2026-03-11 11:49:54 +08:00
liuwei
cfabd169fb 总结优化 2026-03-11 11:32:27 +08:00
liuwei
55ded6a2c2 优化一下 markdown_to_image.py 2026-02-27 10:02:24 +08:00
liuwei
cb6831d727 优化md到图片的内容。 2026-02-02 09:19:44 +08:00
liuwei
34230e60ab 优化markdown to_image 逻辑 2026-01-29 10:32:01 +08:00
liuwei
f73c730fb4 调整文件目录,markdown生成image的放到单独的目录下。 2026-01-14 15:48:39 +08:00
liuwei
31c9fc64ad 优化一下总结生成。加入重试机制 2025-09-22 10:43:25 +08:00
liuwei
b685ed3b09 优化超时时间 2025-07-11 16:10:35 +08:00
liuwei
4db938df0b 使用同步写入,并且加上文件验证,文件延时0.5秒 2025-06-24 10:05:41 +08:00
liuwei
e388deb4ea 暂时不删除临时文件 2025-06-16 17:18:37 +08:00
liuwei
02a387628c 优化IO问题,使用异步方案进行视频下载等操作。 2025-06-16 10:11:43 +08:00
liuwei
8233770a5f 优化临时文件管理策略。防止到处生成临时文件 2025-06-05 14:56:33 +08:00
liuwei
8fb4388731 优化临时文件管理 2025-06-04 11:55:44 +08:00
liuwei
b63d9c568c 优化IO问题 2025-06-04 09:02:31 +08:00
liuwei
570cfd38dd 测试 2025-05-30 16:20:23 +08:00
liuwei
77dbe54f73 动态图片高度, 2025-05-29 10:59:10 +08:00
liuwei
ddf1d0a233 动态图片高度, 2025-05-29 10:56:38 +08:00
liuwei
d326467a04 优化截图,但是会残留大量的文件 2025-05-27 17:29:53 +08:00
liuwei
211624eec9 调整浏览器路径。 2025-05-26 14:17:36 +08:00
liuwei
1018d09a10 优化生成图片功能 2025-05-26 14:02:05 +08:00
liuwei
1a0220a907 使用同步处理机制 2025-05-16 09:58:34 +08:00
liuwei
11a3c4ef6b 消息异常捕获,防止退出循环 2025-05-16 09:42:57 +08:00
liuwei
4db99a882a 优化浏览器策略 2025-05-16 09:12:38 +08:00
liuwei
67c3430395 总结功能修复 2025-05-07 15:05:58 +08:00
liuwei
09d063d1dd 调整总结格式 2025-03-26 17:50:43 +08:00
liuwei
4531cbfd4d 优化浏览器查找能力 2025-03-24 16:22:00 +08:00