import os import tornado.gen import tornado.httpclient import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define, options,OptionParser from model.common.file_pid import PID from urls import urls from model.log import logger import requests import time import sys log = logger() iTime = 300 define("port", default=sys.argv[1], help="run on the given port", type=int) class HttpServerWrapper(tornado.web.Application): def __init__(self, port=80,debug=True): self.port = port handlers = urls # 默认为开发环境,只有当dev输入时为生产环境 auth = True if 'pro' in OptionParser().parse_command_line() and sys.argv[1] == '8008' else False if auth: print('生产环境,启动') else: print('测试环境,启动') settings = { "port" : sys.argv[1], "auth": auth, "cookie_secret": "", "login_url": "", "autoreload": True, "debug": False, "allow_remote_access": True, "template_path": os.path.join(os.path.dirname(__file__), "templates"), "static_path": os.path.join(os.path.dirname(__file__), "templates") } super(HttpServerWrapper, self).__init__(handlers, **settings) def get_ip(self): for i in range(30): time.sleep(1) try: r = requests.get("http://jsonip.com").json()['ip'] print(r) return r except: print('获取ip,出错') pass raise def main(): #TODO:日志这部分需要设置一下,有问题 PID.write() tornado.options.parse_command_line() http_server = tornado.httpserver.HTTPServer(HttpServerWrapper()) http_server.listen(options.port) log.info("server start, listening on port %s" % options.port) tornado.ioloop.IOLoop.current().start() if __name__ == '__main__': main()