fix: ignore missing nacos catalog entries

This commit is contained in:
ZuoZuo 2026-04-22 01:42:03 +08:00
parent e54bf80e5a
commit 07df198822

View File

@ -330,19 +330,26 @@ def list_instances(namespace_id: str, service_name: str, group_name: str) -> lis
def catalog_instances(namespace_id: str, service_name: str, group_name: str) -> list[dict[str, Any]]:
# 调用 catalog/instances 获取注册表视图。
payload = nacos_request(
"GET",
"/nacos/v1/ns/catalog/instances",
{
"serviceName": service_name,
"groupName": group_name,
"namespaceId": namespace_id or None,
"clusterName": NACOS_DISCOVERY_CLUSTER_NAME,
"pageNo": "1",
"pageSize": str(max(NACOS_PAGE_SIZE, 200)),
},
)
try:
# 调用 catalog/instances 获取注册表视图。
payload = nacos_request(
"GET",
"/nacos/v1/ns/catalog/instances",
{
"serviceName": service_name,
"groupName": group_name,
"namespaceId": namespace_id or None,
"clusterName": NACOS_DISCOVERY_CLUSTER_NAME,
"pageNo": "1",
"pageSize": str(max(NACOS_PAGE_SIZE, 200)),
},
)
except RuntimeError as exc:
# 服务不存在时按空列表处理,不让单服务失败拖垮整块 Nacos 面板。
message = str(exc).lower()
if "is not found" in message or "service " in message and "not found" in message:
return []
raise
# 返回 list 字段。
return list(payload.get("list") or [])