#!/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()