# -*- coding: utf-8 -*- from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.web import Application, RequestHandler, FallbackHandler from tornado.ioloop import IOLoop from flask_script import Manager from flask_migrate import Migrate from application.app import create_app, db from application.config import config from views.monitor import DeviceMessageHandler, WatchHandler, NotifyHandler # 根据配置初始化app app = create_app(config) migrate = Migrate(app, db) manager = Manager(app) host, port = tuple(config.BIND.split(":")) print("===============>", host, port) @manager.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() @manager.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) if __name__ == '__main__': manager.run()