main.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. import ai_strategy_request_handler
  13. import ai_callback_add_creative_handler
  14. import ai_callback_add_group_handler
  15. def create_application():
  16. # 日志的格式
  17. log_formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s',
  18. '%m/%d/%Y %I:%M:%S %p')
  19. # ai策略请求解析的日志对象-----------------------------------------------------------
  20. ai_strategy_request_log_handler = TimedRotatingFileHandler("logs/add_group_log/ai_strategy_request.log",
  21. when="midnight",
  22. backupCount=100)
  23. ai_strategy_request_log_handler.setFormatter(log_formatter)
  24. ai_strategy_request_logger = logging.getLogger('ai_strategy_request_logger')
  25. ai_strategy_request_logger.addHandler(ai_strategy_request_log_handler)
  26. ai_strategy_request_logger.setLevel(logging.DEBUG)
  27. print("ai_strategy_request_logger's id is {}".format(id(ai_strategy_request_logger)))
  28. msg = "ai strategy request service started at {t}".\
  29. format(t=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
  30. ai_strategy_request_logger.info(msg)
  31. # 创建广告组回调日志对象-----------------------------------------------------------
  32. ai_callback_add_group_log_handler = TimedRotatingFileHandler("logs/add_group_log/ai_callback_add_group.log",
  33. when="midnight",
  34. backupCount=100)
  35. ai_callback_add_group_log_handler.setFormatter(log_formatter)
  36. ai_callback_add_group_logger = logging.getLogger('ai_callback_add_group_logger')
  37. ai_callback_add_group_logger.addHandler(ai_callback_add_group_log_handler)
  38. ai_callback_add_group_logger.setLevel(logging.DEBUG)
  39. print("ai_callback_add_group_logger's id is {}".format(id(ai_callback_add_group_logger)))
  40. msg = "ai callback add group logger service started at {t}". \
  41. format(t=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
  42. ai_callback_add_group_logger.info(msg)
  43. # 创建广告创意回调日志对象-----------------------------------------------------------
  44. ai_callback_add_creative_log_handler = TimedRotatingFileHandler("logs/add_group_log/ai_callback_add_creative.log",
  45. when="midnight",
  46. backupCount=100)
  47. ai_callback_add_creative_log_handler.setFormatter(log_formatter)
  48. ai_callback_add_creative_logger = logging.getLogger('ai_callback_add_creative_logger')
  49. ai_callback_add_creative_logger.addHandler(ai_callback_add_creative_log_handler)
  50. ai_callback_add_creative_logger.setLevel(logging.DEBUG)
  51. print("ai_callback_add_creative_logger's id is {}".format(id(ai_callback_add_creative_logger)))
  52. msg = "ai callback add creative logger service started at {t}". \
  53. format(t=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
  54. ai_callback_add_creative_logger.info(msg)
  55. web_application = tornado.web.Application([
  56. (r"/ai_strategy_request",
  57. ai_strategy_request_handler.AiStrategyRequestParse,
  58. {"logger": ai_strategy_request_logger}),
  59. (r"/ai_callback_add_group",
  60. ai_callback_add_group_handler.AiCallBackAddGroup,
  61. {"logger": ai_strategy_request_logger}),
  62. (r"/ai_callback_add_creative",
  63. ai_callback_add_creative_handler.AiCallBackAddCreative,
  64. {"logger": ai_strategy_request_logger}),
  65. ])
  66. return web_application
  67. if __name__ == "__main__":
  68. # import platform
  69. # if platform.system() == 'Windows':
  70. # import asyncio
  71. # asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
  72. parser = argparse.ArgumentParser()
  73. parser.add_argument('-p', '--port', type=int, default=31012)
  74. args = parser.parse_args()
  75. application = create_application()
  76. application.listen(args.port)
  77. tornado.ioloop.IOLoop.instance().start()