run server for api
(self)
| 51 | time.sleep(cycle) |
| 52 | |
| 53 | def run_server(self): |
| 54 | """ |
| 55 | run server for api |
| 56 | """ |
| 57 | if not ENABLE_SERVER: |
| 58 | logger.info('server not enabled, exit') |
| 59 | return |
| 60 | if IS_PROD: |
| 61 | if APP_PROD_METHOD == APP_PROD_METHOD_GEVENT: |
| 62 | try: |
| 63 | from gevent.pywsgi import WSGIServer |
| 64 | except ImportError as e: |
| 65 | logger.exception(e) |
| 66 | else: |
| 67 | http_server = WSGIServer((API_HOST, API_PORT), app) |
| 68 | http_server.serve_forever() |
| 69 | |
| 70 | elif APP_PROD_METHOD == APP_PROD_METHOD_TORNADO: |
| 71 | try: |
| 72 | from tornado.wsgi import WSGIContainer |
| 73 | from tornado.httpserver import HTTPServer |
| 74 | from tornado.ioloop import IOLoop |
| 75 | except ImportError as e: |
| 76 | logger.exception(e) |
| 77 | else: |
| 78 | http_server = HTTPServer(WSGIContainer(app)) |
| 79 | http_server.listen(API_PORT) |
| 80 | IOLoop.instance().start() |
| 81 | |
| 82 | elif APP_PROD_METHOD == APP_PROD_METHOD_MEINHELD: |
| 83 | try: |
| 84 | import meinheld |
| 85 | except ImportError as e: |
| 86 | logger.exception(e) |
| 87 | else: |
| 88 | meinheld.listen((API_HOST, API_PORT)) |
| 89 | meinheld.run(app) |
| 90 | |
| 91 | else: |
| 92 | logger.error("unsupported APP_PROD_METHOD") |
| 93 | return |
| 94 | else: |
| 95 | app.run(host=API_HOST, port=API_PORT, threaded=API_THREADED, use_reloader=False) |
| 96 | |
| 97 | def run(self): |
| 98 | global tester_process, getter_process, server_process |