兼容864初始化状态探针异常返回
This commit is contained in:
@@ -325,12 +325,29 @@ class Server864RuntimeMixin:
|
||||
if await self.get_init_status():
|
||||
return
|
||||
except Exception as e:
|
||||
logger.warning(f"server_864 检查初始化状态失败: {e}")
|
||||
error_message = str(e).strip()
|
||||
# 864 不同版本对“初始化状态”接口的支持并不一致:
|
||||
# 1. 实际联调里已经出现“登录成功后消息同步正常,但 GetInItStatus 返回该链接不存在”的情况;
|
||||
# 2. 这说明它更像一个附加探针,而不是启动主链路的硬前置条件;
|
||||
# 3. 因此遇到这种兼容性错误时直接放行,避免机器人已经可用却持续打印误导性告警。
|
||||
if "该链接不存在" in error_message:
|
||||
logger.info("server_864 当前版本未提供稳定的初始化状态查询,跳过该探针并继续启动")
|
||||
return
|
||||
logger.warning(f"server_864 检查初始化状态失败: {error_message}")
|
||||
await asyncio.sleep(2)
|
||||
|
||||
async def _refresh_identity_from_profile(self, *, logger) -> None:
|
||||
"""从 864 的资料接口刷新当前登录身份。"""
|
||||
profile = await self.get_profile()
|
||||
try:
|
||||
profile = await self.get_profile()
|
||||
except Exception as e:
|
||||
error_message = str(e).strip()
|
||||
# 864 有些版本在消息链路可用后,资料接口仍可能短时间不可用:
|
||||
# 1. 此时若直接抛异常,会让“已经登录成功”的启动流程被资料查询反向拖垮;
|
||||
# 2. 项目主链路真正依赖的是后续消息同步与发送能力,而不是这里的展示性资料;
|
||||
# 3. 所以这里改成降级告警,保留已有身份字段,等后续再由可用接口补齐。
|
||||
logger.warning(f"server_864 刷新登录账号资料失败,继续沿用当前缓存身份: {error_message}")
|
||||
return
|
||||
self.wxid = str(
|
||||
profile.get("UserName")
|
||||
or profile.get("userName")
|
||||
|
||||
Reference in New Issue
Block a user