From fbcc505a88a47a7850278c615de37feef6f75def Mon Sep 17 00:00:00 2001 From: martin <1486756632@qq.com> Date: Tue, 13 Jan 2026 03:04:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=B1=BB=E5=88=AB=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- func_aimodellist/func_1x.py | 2 +- md/grpc.md | 25 +++++++++++++------------ yolo_api.py | 2 -- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/func_aimodellist/func_1x.py b/func_aimodellist/func_1x.py index 95ef093..97fb57b 100644 --- a/func_aimodellist/func_1x.py +++ b/func_aimodellist/func_1x.py @@ -94,7 +94,7 @@ def func_100000(results, cls_id_list, type_name_list, func_id_10001, list_track_ trickier_detail = { # "track_id": results.track_ids[i], "confidence": results.confs[i], - "cls_id": i, + "cls_id": ind, "type_name": type_name_list[ind], "box": boxes[i] } diff --git a/md/grpc.md b/md/grpc.md index 5b46d84..ae02b6d 100644 --- a/md/grpc.md +++ b/md/grpc.md @@ -6,6 +6,10 @@ sanic 和 服务之间基于grpc 解绑,一个服务一个grpc 可以参考接口,grpc 最好留有健康校验 + + + + # grpc demo 为了增强 gRPC 通讯的可靠性,我们可以添加以下功能: @@ -83,6 +87,7 @@ message TaskResponse { ```bash python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. task.proto +protoc -I=./proto --go_out=./gen proto/subfolder/task.proto ``` ## 3. 增强服务端实现 (server.py) @@ -219,27 +224,16 @@ if __name__ == '__main__': ## 5. 增强功能说明 1. 健康检查服务 - - 添加了标准的 gRPC 健康检查服务 - 客户端可以在执行主要操作前检查服务状态 - 2. 错误处理和重试机制 - - : - - 客户端现在会捕获 `grpc.RpcError` 和其他异常 - 实现了最大重试次数和重试间隔 - 每次重试前都会检查服务器状态 - 3. 资源管理 - - 确保在所有情况下都正确关闭通道 - 使用上下文管理器处理通道生命周期 - 4. 状态反馈 - - : - - 提供更详细的错误信息 - 记录重试尝试 @@ -254,7 +248,14 @@ if __name__ == '__main__': 2. 生成 protobuf 代码: ```bash - python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. task.proto + + # 确保在项目根目录下执行 + # 编译 proto 文件,输出到 a/b/ 目录 + python -m grpc_tools.protoc \ + -I. \ # 指定 proto 文件的根目录(当前目录 ".") + --python_out=. \ # 生成 _pb2.py 到当前目录(或指定子目录) + --grpc_python_out=. \ # 生成 _pb2_grpc.py 到当前目录(或指定子目录) + a/b/task.proto # proto 文件路径(相对于 -I 指定的根目录) ``` 3. 启动服务器: diff --git a/yolo_api.py b/yolo_api.py index 3930a65..96c90b8 100644 --- a/yolo_api.py +++ b/yolo_api.py @@ -1596,8 +1596,6 @@ async def check_grpc(request): verify_token(request) check_grpc_request() - - return json_response({ "status": "success", "task_id": "task_id",