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