modify: 性能优化
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
网关 RouteRegistry 订阅同名空间并动态挂载 HTTP 路由。
|
网关 RouteRegistry 订阅同名空间并动态挂载 HTTP 路由。
|
||||||
描述符 schema_version=1,字段与网关 RouteConfig 完全对位(TOML 兼容 dict)。
|
描述符 schema_version=1,字段与网关 RouteConfig 完全对位(TOML 兼容 dict)。
|
||||||
"""
|
"""
|
||||||
import json
|
import orjson
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, Dict, List, Optional
|
from typing import Any, Dict, List, Optional
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ class RoutePublisher:
|
|||||||
descriptor["schema_version"] = SCHEMA_VERSION
|
descriptor["schema_version"] = SCHEMA_VERSION
|
||||||
descriptor["type"] = self._worker_type
|
descriptor["type"] = self._worker_type
|
||||||
key = f"{ROUTES_PREFIX}/{self._worker_type}/{route_id(subject, method)}"
|
key = f"{ROUTES_PREFIX}/{self._worker_type}/{route_id(subject, method)}"
|
||||||
self._session.put(key, json.dumps(descriptor, ensure_ascii=False).encode("utf-8"))
|
self._session.put(key, orjson.dumps(descriptor))
|
||||||
self._keys.append(key)
|
self._keys.append(key)
|
||||||
logger.info(
|
logger.info(
|
||||||
"已发布路由: %s %s (subject=%s)",
|
"已发布路由: %s %s (subject=%s)",
|
||||||
@@ -66,7 +66,7 @@ class RoutePublisher:
|
|||||||
meta_key = f"{ROUTES_PREFIX}/{self._worker_type}/{META_KEY}"
|
meta_key = f"{ROUTES_PREFIX}/{self._worker_type}/{META_KEY}"
|
||||||
meta = {"schema_version": SCHEMA_VERSION, "mqtt_topics": mqtt_topics}
|
meta = {"schema_version": SCHEMA_VERSION, "mqtt_topics": mqtt_topics}
|
||||||
self._session.put(
|
self._session.put(
|
||||||
meta_key, json.dumps(meta, ensure_ascii=False).encode("utf-8")
|
meta_key, orjson.dumps(meta)
|
||||||
)
|
)
|
||||||
self._keys.append(meta_key)
|
self._keys.append(meta_key)
|
||||||
logger.info("已发布插件元信息: %d 个自定义 MQTT 主题", len(mqtt_topics))
|
logger.info("已发布插件元信息: %d 个自定义 MQTT 主题", len(mqtt_topics))
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ Worker 运行时 — 通用的生命周期管理
|
|||||||
import os
|
import os
|
||||||
import asyncio
|
import asyncio
|
||||||
import inspect
|
import inspect
|
||||||
import json
|
|
||||||
import logging
|
import logging
|
||||||
import orjson
|
import orjson
|
||||||
from typing import Any, Dict, List, Optional
|
from typing import Any, Dict, List, Optional
|
||||||
@@ -143,7 +142,7 @@ async def create_worker(
|
|||||||
matched = methods[0] # 降级到第一个
|
matched = methods[0] # 降级到第一个
|
||||||
if not matched:
|
if not matched:
|
||||||
query.reply_err(
|
query.reply_err(
|
||||||
payload=json.dumps({"error": f"No method for {subject}"}).encode("utf-8")
|
payload=orjson.dumps({"error": f"No method for {subject}"})
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -183,7 +182,7 @@ async def create_worker(
|
|||||||
# 框架错误走 reply_err 通道:网关零解析判定失败(映射 503);
|
# 框架错误走 reply_err 通道:网关零解析判定失败(映射 503);
|
||||||
# 载荷保持原错误信封结构,旧网关仍按普通回复透传(兼容)
|
# 载荷保持原错误信封结构,旧网关仍按普通回复透传(兼容)
|
||||||
query.reply_err(
|
query.reply_err(
|
||||||
payload=json.dumps(error_response).encode("utf-8")
|
payload=orjson.dumps(error_response)
|
||||||
)
|
)
|
||||||
logger.error("[Worker] %s 异常 %s: %s", worker_id, subject, e)
|
logger.error("[Worker] %s 异常 %s: %s", worker_id, subject, e)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user