#!/usr/bin/env python # -*- coding: utf-8 -*- import os import signal import sys from concurrent import futures import logging from loguru import logger import grpc from user_srv.handler.user import UserServicer from user_srv.proto import user_pb2_grpc BASE_DIR = os.path.dirname(os.path.abspath(os.path.dirname(__file__))) def on_exit(signo, frame): logger.info("进程中断") sys.exit(0) def serve(): logger.add("logs/user_srv_{time}.log") server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) user_pb2_grpc.add_UserServicer_to_server(UserServicer(), server) server.add_insecure_port('[::]:50051') # 主进程信号退出 """ WINDOWS下支持的信号是有限的 SIGINT ctrl + c终端 SIGTERM KILL发出的软件终止 """ signal.signal(signal.SIGINT, on_exit) signal.signal(signal.SIGTERM, on_exit) logger.info("启动服务:127.0.0.1::50051") server.start() server.wait_for_termination() if __name__ == '__main__': logging.basicConfig() serve()