You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.8 KiB
Python

import logging
import time
from concurrent import futures
import grpc
from processor.create_xml import CreateXml
from processor.processor import Processor
from server import process_pb2_grpc
class Statistics(process_pb2_grpc.StatisticsServicer):
def RunTeamStatistics(self, request, context):
return Processor(request.event, request.homeTeamId, request.visitingTeamID,
request.names).run_team_statistics()
def RunPlayerStatistics(self, request, context):
return Processor(request.event, request.homeTeamId, request.visitingTeamID,
request.names).run_player_statistics()
def RunPassingMatrix(self, request, context):
return Processor(request.event, request.homeTeamId, request.visitingTeamID,
request.names).run_passing_matrix()
def RunPassGraph(self, request, context):
return Processor(request.event, request.homeTeamId, request.visitingTeamID, request.names).run_pass_graph()
def RunCreateXml(self, request, context):
return CreateXml(request.matchId).run_create_xml()
def serve():
logger = logging.getLogger()
# 启动 rpc 服务
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
process_pb2_grpc.add_StatisticsServicer_to_server(Statistics(), server)
server.add_insecure_port('127.0.0.1:5959')
server.start()
logger.info('grpc server start on port(s):5959')
try:
while True:
time.sleep(60 * 60 * 24) # one day in seconds
except KeyboardInterrupt:
server.stop(0)
logger.info('grpc server shutdown.')
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO, format='time="%(asctime)s" level=%(levelname)s message="%(message)s"')
serve()