# -*- coding: utf-8 -*- import click from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.web import Application, FallbackHandler from tornado.ioloop import IOLoop from application.app import create_app from application.config import config from views.monitor import DeviceMessageHandler, WatchHandler, NotifyHandler # 根据配置初始化app app = create_app(config) host, port = tuple(config.BIND.split(":")) # print("===============>", host, port) @click.group() def cli(): pass @click.command() def run(): """ 生产模式启动命令函数 To use: python3 manager.py run """ # app.logger.setLevel(app.config.get('LOG_LEVEL', logging.INFO)) http_server = HTTPServer(WSGIContainer(app)) http_server.listen(int(port), address=host) IOLoop.instance().start() @click.command() def debug(): """ debug模式启动命令函数 To use: python3 manager.py debug """ wsgi_app = WSGIContainer(app) application = Application([ (r"/api/v1/evm_store/monitor", DeviceMessageHandler), (r"/api/v1/evm_store/watch", WatchHandler), (r"/ws/v1/notify", NotifyHandler), (r'.*', FallbackHandler, dict(fallback=wsgi_app)) ]) application.listen(int(port), address=host) IOLoop.current().start() print("WebSocket Service Started......") # app.logger.setLevel(logging.DEBUG) # app.run(debug=True, port=int(port), host=host) cli.add_command(debug) cli.add_command(run) if __name__ == '__main__': cli()