similarity_main.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import tornado.ioloop
  2. import tornado.web
  3. import argparse
  4. import json
  5. import pickle
  6. import tornado.options
  7. import tornado.log
  8. import time
  9. import traceback
  10. from logging.handlers import TimedRotatingFileHandler
  11. import logging
  12. from simhash_model import simhash_distance_handler
  13. def create_application():
  14. # 日志的格式
  15. log_formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s',
  16. '%m/%d/%Y %I:%M:%S %p')
  17. # 创建日志对象
  18. simhash_log_handler = TimedRotatingFileHandler("logs/simhash_model/model_service.log",
  19. when="midnight",
  20. backupCount=100)
  21. simhash_log_handler.setFormatter(log_formatter)
  22. simhash_logger = logging.getLogger('simhash_logger')
  23. simhash_logger.addHandler(simhash_log_handler)
  24. simhash_logger.setLevel(logging.DEBUG)
  25. print("simhash_logger's id is {}".format(id(simhash_logger)))
  26. msg = "simhash similarity service started at {t}".\
  27. format(t=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
  28. simhash_logger.info(msg)
  29. try:
  30. with open('simhash_model/doc/pre_remove_word.txt', 'r', encoding='utf-8') as f:
  31. pre_remove_words = f.readlines()
  32. pre_remove_words = [item.rstrip('\n') for item in pre_remove_words]
  33. msg = "simhash similarity service started successfully at {t}".format(
  34. t=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
  35. simhash_logger.info(msg)
  36. except Exception:
  37. msg = ''.join(traceback.format_exc())
  38. simhash_logger.error(msg)
  39. raise Exception(msg)
  40. application = tornado.web.Application([
  41. (r"/simhash_diatance_calc/(\w+)",
  42. simhash_distance_handler.OnlineSimHashSimilarity,
  43. {"pre_remove_words": pre_remove_words,
  44. "logger": simhash_logger}),
  45. ])
  46. return application
  47. if __name__ == "__main__":
  48. parser = argparse.ArgumentParser()
  49. parser.add_argument('-p', '--port', type=int, default=31011)
  50. args = parser.parse_args()
  51. application = create_application()
  52. application.listen(args.port)
  53. tornado.ioloop.IOLoop.instance().start()