''' Author: your name Date: 2021-06-15 17:40:09 LastEditTime: 2021-07-20 19:15:04 LastEditors: Please set LastEditors Description: In User Settings Edit FilePath: \evm-store\tools\resources\manager.py ''' # -*- coding: utf-8 -*- import signal from tornado.wsgi import WSGIContainer from tornado.web import Application, FallbackHandler from tornado.httpserver import HTTPServer 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, NotifyHandler, WatchHandler # 根据配置初始化app app = create_app(config) migrate = Migrate(app, db) manager = Manager(app) class GracefulExit(SystemExit): code = 1 def raise_graceful_exit(*args): IOLoop.current().stop() print("Gracefully shutdown", args) raise GracefulExit() @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(3000, address='127.0.0.1') IOLoop.instance().start() @manager.command def debug(): """ debug模式启动命令函数 To use: python3 manager.py debug """ # app.logger.setLevel(logging.DEBUG) # app.run(debug=True, port=3000, host='127.0.0.1') 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)) ], **{ 'debug': True, }) application.listen(3000, address='127.0.0.1', xheaders=True) # 主进程退出信号 signal.signal(signal.SIGINT, raise_graceful_exit) signal.signal(signal.SIGTERM, raise_graceful_exit) IOLoop.instance().start() if __name__ == '__main__': manager.run()