调整md2img保活策略:取消截图后立即重建,改为心跳确认后再自愈
1. 去除截图后探测失败即刻 restart_browser 的逻辑\n2. 改为仅记录告警并推进断连计数,交由心跳任务统一确认后重建\n3. 保留截图失败时的重试重建能力,避免功能不可用\n4. 增加详细中文注释,明确保活优先与误判抑制设计
This commit is contained in:
@@ -704,7 +704,8 @@ class _PersistentBrowser:
|
||||
try:
|
||||
await _capture_with_browser(browser)
|
||||
# 截图完成后立刻做一次可用性探测。
|
||||
# 在部分系统环境中,浏览器可能在任务完成后迅速断连,这里主动重建保证“常驻”语义。
|
||||
# 在部分系统环境中,浏览器可能在任务完成后出现短暂抖动。
|
||||
# 这里优先“保活语义”:不在截图收尾阶段立刻触发重建,避免误判时把本来可用的浏览器关掉。
|
||||
# 这里使用“短重试探测”过滤瞬时抖动,避免误判触发不必要重建。
|
||||
if not await self._is_browser_alive(
|
||||
browser,
|
||||
@@ -712,8 +713,12 @@ class _PersistentBrowser:
|
||||
retry_count=3,
|
||||
retry_interval_seconds=0.35,
|
||||
):
|
||||
logger.warning("[md2img] 截图后浏览器已断连,立即执行自动重建")
|
||||
await self.restart_browser(reason="post_capture_disconnected")
|
||||
# 说明:
|
||||
# 1. 仅做告警与“断连计数”推进,不立即调用 restart_browser;
|
||||
# 2. 后续由心跳任务统一判定是否需要重建(连续多次断连才重建);
|
||||
# 3. 这样可以最大化避免“截图后立刻重建”导致的保活抖动。
|
||||
logger.warning("[md2img] 截图后探测到浏览器可能断连,暂不立即重建,等待心跳进一步确认")
|
||||
self._disconnect_streak = max(self._disconnect_streak, 2)
|
||||
except Exception as e:
|
||||
# 首次失败后重建一次浏览器再重试,提升抗偶发故障能力。
|
||||
logger.warning(f"[md2img] 常驻浏览器截图失败,准备重建后重试: {e}")
|
||||
|
||||
Reference in New Issue
Block a user