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
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()
|