import tornado.ioloop import tornado.web import argparse import json import pickle import tornado.options import tornado.log import time import traceback from logging.handlers import TimedRotatingFileHandler import logging from simhash_model import simhash_distance_handler def create_application(): # 日志的格式 log_formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s', '%m/%d/%Y %I:%M:%S %p') # 创建日志对象 simhash_log_handler = TimedRotatingFileHandler("logs/simhash_model/model_service.log", when="midnight", backupCount=100) simhash_log_handler.setFormatter(log_formatter) simhash_logger = logging.getLogger('simhash_logger') simhash_logger.addHandler(simhash_log_handler) simhash_logger.setLevel(logging.DEBUG) print("simhash_logger's id is {}".format(id(simhash_logger))) msg = "simhash similarity service started at {t}".\ format(t=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) simhash_logger.info(msg) try: with open('simhash_model/doc/pre_remove_word.txt', 'r', encoding='utf-8') as f: pre_remove_words = f.readlines() pre_remove_words = [item.rstrip('\n') for item in pre_remove_words] msg = "simhash similarity service started successfully at {t}".format( t=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) simhash_logger.info(msg) except Exception: msg = ''.join(traceback.format_exc()) simhash_logger.error(msg) raise Exception(msg) application = tornado.web.Application([ (r"/simhash_diatance_calc/(\w+)", simhash_distance_handler.OnlineSimHashSimilarity, {"pre_remove_words": pre_remove_words, "logger": simhash_logger}), ]) return application if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('-p', '--port', type=int, default=31011) args = parser.parse_args() application = create_application() application.listen(args.port) tornado.ioloop.IOLoop.instance().start()