modify: 性能优化
This commit is contained in:
@@ -4,7 +4,7 @@ AI Box Sophon Adapter — MQTT 心跳上报处理器
|
|||||||
监听 MQTT 主题 /board_ping(通过 MQTT Bridge 路由到 chongming/aibox_sophon_adapter/board_ping),
|
监听 MQTT 主题 /board_ping(通过 MQTT Bridge 路由到 chongming/aibox_sophon_adapter/board_ping),
|
||||||
解析设备心跳数据并更新数据库记录。
|
解析设备心跳数据并更新数据库记录。
|
||||||
"""
|
"""
|
||||||
import json
|
import orjson
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ async def board_ping(request: BoardPingRequest, worker_id: str = "") -> dict:
|
|||||||
return {"error": str(e)}
|
return {"error": str(e)}
|
||||||
|
|
||||||
# ---- 以下为可选能力:失败只告警,不阻断心跳 ----
|
# ---- 以下为可选能力:失败只告警,不阻断心跳 ----
|
||||||
ping_data = json.loads(ping_json)
|
ping_data = orjson.loads(ping_json.encode("utf-8"))
|
||||||
|
|
||||||
# RTSP 拉流(依赖 ffmpeg;缺失时跳过并在启动日志提示)
|
# RTSP 拉流(依赖 ffmpeg;缺失时跳过并在启动日志提示)
|
||||||
medias = ping_data.get("Medias", {})
|
medias = ping_data.get("Medias", {})
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
查询单条告警详情 — GET /aibox/get_alarm?alarm_id=xxx
|
查询单条告警详情 — GET /aibox/get_alarm?alarm_id=xxx
|
||||||
"""
|
"""
|
||||||
import json
|
import orjson
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from chongming_worker import rpc_method
|
from chongming_worker import rpc_method
|
||||||
@@ -34,8 +34,8 @@ async def get_alarm(alarm_id: str, worker_id: str = "") -> dict:
|
|||||||
|
|
||||||
alarm_data = {}
|
alarm_data = {}
|
||||||
try:
|
try:
|
||||||
alarm_data = json.loads(record.alarm_data) if record.alarm_data else {}
|
alarm_data = orjson.loads(record.alarm_data.encode("utf-8")) if record.alarm_data else {}
|
||||||
except json.JSONDecodeError:
|
except orjson.JSONDecodeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
查询单个设备详情 — GET /aibox/get_device?board_id=xxx
|
查询单个设备详情 — GET /aibox/get_device?board_id=xxx
|
||||||
"""
|
"""
|
||||||
import json
|
import orjson
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
@@ -39,8 +39,8 @@ async def get_device(board_id: str, worker_id: str = "") -> dict:
|
|||||||
|
|
||||||
ping_data = {}
|
ping_data = {}
|
||||||
try:
|
try:
|
||||||
ping_data = json.loads(record.ping_data) if record.ping_data else {}
|
ping_data = orjson.loads(record.ping_data.encode("utf-8")) if record.ping_data else {}
|
||||||
except json.JSONDecodeError:
|
except orjson.JSONDecodeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
查询离线/异常设备 — GET /aibox/get_offline_devices
|
查询离线/异常设备 — GET /aibox/get_offline_devices
|
||||||
"""
|
"""
|
||||||
import json
|
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
查询告警记录列表 — GET /aibox/list_alarms
|
查询告警记录列表 — GET /aibox/list_alarms
|
||||||
"""
|
"""
|
||||||
import json
|
import orjson
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from chongming_worker import rpc_method
|
from chongming_worker import rpc_method
|
||||||
@@ -60,8 +60,8 @@ async def list_alarms(
|
|||||||
for record in records:
|
for record in records:
|
||||||
alarm_data = {}
|
alarm_data = {}
|
||||||
try:
|
try:
|
||||||
alarm_data = json.loads(record.alarm_data) if record.alarm_data else {}
|
alarm_data = orjson.loads(record.alarm_data.encode("utf-8")) if record.alarm_data else {}
|
||||||
except json.JSONDecodeError:
|
except orjson.JSONDecodeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
alarms.append({
|
alarms.append({
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
查询所有设备状态 — GET /aibox/list_devices
|
查询所有设备状态 — GET /aibox/list_devices
|
||||||
"""
|
"""
|
||||||
import json
|
import orjson
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
@@ -39,8 +39,8 @@ async def list_devices(worker_id: str = "") -> dict:
|
|||||||
|
|
||||||
ping_data = {}
|
ping_data = {}
|
||||||
try:
|
try:
|
||||||
ping_data = json.loads(record.ping_data) if record.ping_data else {}
|
ping_data = orjson.loads(record.ping_data.encode("utf-8")) if record.ping_data else {}
|
||||||
except json.JSONDecodeError:
|
except orjson.JSONDecodeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
devices.append({
|
devices.append({
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ AI Box Sophon Adapter — 自定义 FastAPI 路由
|
|||||||
路由前缀: /aibox_sophon_adapter(网关自动加 /api/v1)
|
路由前缀: /aibox_sophon_adapter(网关自动加 /api/v1)
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
import json
|
import orjson
|
||||||
import uuid
|
import uuid
|
||||||
import hashlib
|
import hashlib
|
||||||
import logging
|
import logging
|
||||||
@@ -133,7 +133,7 @@ async def _save_alarm_record(alarm: dict) -> None:
|
|||||||
alarm_id = alarm.get("AlarmId") or alarm.get("UniqueId", "")
|
alarm_id = alarm.get("AlarmId") or alarm.get("UniqueId", "")
|
||||||
media = alarm.get("Media", {})
|
media = alarm.get("Media", {})
|
||||||
media_name = media.get("MediaName", "") if isinstance(media, dict) else ""
|
media_name = media.get("MediaName", "") if isinstance(media, dict) else ""
|
||||||
alarm_data_str = json.dumps(alarm, ensure_ascii=False)
|
alarm_data_str = orjson.dumps(alarm).decode()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
async with db.get_session() as session:
|
async with db.get_session() as session:
|
||||||
@@ -450,7 +450,7 @@ async def alarm_report(
|
|||||||
logger.error(
|
logger.error(
|
||||||
f"[AlarmReport] Pydantic 验证失败:\n"
|
f"[AlarmReport] Pydantic 验证失败:\n"
|
||||||
f" 错误: {e.errors()}\n"
|
f" 错误: {e.errors()}\n"
|
||||||
f" 请求体: {json.dumps(payload, ensure_ascii=False)[:3000]}"
|
f" 请求体: {orjson.dumps(payload).decode()[:3000]}"
|
||||||
)
|
)
|
||||||
raise HTTPException(status_code=422, detail=e.errors())
|
raise HTTPException(status_code=422, detail=e.errors())
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import time
|
import time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import json
|
import orjson
|
||||||
|
|
||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ async def login(login_post_request: LoginPostRequest) -> LoginPostResponse:
|
|||||||
}
|
}
|
||||||
|
|
||||||
token = jwt.encode(
|
token = jwt.encode(
|
||||||
json.dumps(payload),
|
orjson.dumps(payload).decode(),
|
||||||
expires_in_seconds=10800 # 3小时有效期
|
expires_in_seconds=10800 # 3小时有效期
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user