核心实现:搭建 Monorepo 架构,完成 shared 共享包、gateway、user-service 基础框架开发 技术落地:严格匹配指定技术栈版本,完成 Docker、gRPC、FastAPI、PostgreSQL、Redis 等配置,实现服务间基础连通 配套文件:生成 Makefile、环境变量模板、数据库 / 脚本初始化文件及启动验证文档 架构定位:仅搭建基础架构骨架,无任何业务逻辑、业务规则及业务相关字段,为后续业务开发提供支撑
30 lines
903 B
Python
30 lines
903 B
Python
import grpc
|
|
from concurrent import futures
|
|
from app.api.user_service import UserService
|
|
from app.grpc_generated import user_pb2_grpc
|
|
from app.core.config import settings
|
|
from app.db.models import BaseDBModel
|
|
from app.db.session import engine
|
|
import asyncio
|
|
from loguru import logger
|
|
|
|
async def init_db():
|
|
# 创建数据库表
|
|
async with engine.begin() as conn:
|
|
await conn.run_sync(BaseDBModel.metadata.create_all)
|
|
|
|
async def serve():
|
|
server = grpc.aio.server(futures.ThreadPoolExecutor(max_workers=10))
|
|
user_pb2_grpc.add_UserServiceServicer_to_server(UserService(), server)
|
|
server.add_insecure_port(f"0.0.0.0:{settings.grpc_port}")
|
|
|
|
# 初始化数据库
|
|
await init_db()
|
|
|
|
logger.info(f"Starting gRPC server on port {settings.grpc_port}")
|
|
await server.start()
|
|
await server.wait_for_termination()
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(serve())
|