diff --git a/utils/markdown_to_image.py b/utils/markdown_to_image.py index 1537734..9e4f71c 100644 --- a/utils/markdown_to_image.py +++ b/utils/markdown_to_image.py @@ -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}")