12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- # coding:utf-8
- from proto import fileText_pb2
- from servicerd.service import ServiceManage
- from proto import fileText_pb2_grpc
- from concurrent import futures
- from loguru import logger
- from app import FileApps
- import grpc
- import argparse
- import time
- import json
- import file_processing
- logger.add('./logs/runtime_{time}.log', rotation='00:00')
- parser = argparse.ArgumentParser()
- parser.add_argument('-host', '--serve_host', type=str, default="192.168.3.13", help='提供服务的主机地址')
- # parser.add_argument('-host', '--serve_host', type=str, default="192.168.21.183", help='提供服务的主机地址')
- parser.add_argument('-port', '--serve_port', type=int, default=11103, help='提供>服务的主机端口')
- parser.add_argument('-chost', '--consul_serve_host', type=str, default='192.168.3.12', help='consul主机地址')
- parser.add_argument('-cport', '--consul_serve_port', type=int, default=10021, help='consul主机端口')
- args = parser.parse_args()
- _ONE_DAY_IN_SECONDS = 60 * 60 * 24
- _SERVICE_NAME = 'file_service'
- _HOST = args.serve_host
- _PORT = args.serve_port
- RD_SERVER = "{}:{}".format(args.consul_serve_host, args.consul_serve_port)
- WORKERS = 1
- class FileExtractServices(fileText_pb2_grpc.FileExtractServicer):
- def FileExtract(self, request, context):
- # TODO 调业务
- try:
- response_result = []
- try:
- other = request.other
- other_json = json.loads(other)
- except:
- other_json = {}
- file_processing.file_picture.OcrType = "tr" if other_json.get("ocr_type", "") == "tr" else "common"
- for file in request.message:
- request_attr = {"file_name": file.fileName,
- "file_url": file.fileUrl,
- "file_bytes": file.fileBytes,
- "file_type": file.fileType,
- "return_type": file.returnType,
- "extract_type": file.extractType,
- }
- file_factory = FileApps(request_attr)
- parse_result = file_factory.start()
- response_result.extend(parse_result)
- return fileText_pb2.FileResponse(result=response_result, other=request.other)
- except Exception as e:
- print(e)
- return fileText_pb2.FileResponse(result=[])
- def start_server(destory_fn: any):
- """
- 启动服务
- :param destory_fn:
- :return:
- """
- server = grpc.server(futures.ThreadPoolExecutor(max_workers=WORKERS))
- fileText_pb2_grpc.add_FileExtractServicer_to_server(FileExtractServices(), server)
- server.add_insecure_port('[::]:%d' % (_PORT))
- server.start()
- try:
- while True:
- time.sleep(1)
- except KeyboardInterrupt:
- destory_fn()
- server.stop(0)
- if __name__ == '__main__':
- sm = ServiceManage(rd_server=RD_SERVER,
- name=_SERVICE_NAME,
- local_ip=_HOST,
- local_port=_PORT,
- workers=WORKERS,
- balance_type=2)
- start_server(sm.destory)
|