-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwsgi_server.py
More file actions
35 lines (29 loc) · 1.12 KB
/
wsgi_server.py
File metadata and controls
35 lines (29 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import sys
import logging
from app import app
from config import settings
import importlib
if __name__ == "__main__":
if len(sys.argv) != 2 or sys.argv[1] not in ['-win', '-linux']:
logging.error("Usage: {} [-win|-linux]".format(sys.argv[0]))
quit()
if sys.argv[1] == '-win':
waitress = importlib.import_module('waitress')
waitress.serve(app, host="0.0.0.0", port=int(settings.PORT_NUMBER))
else:
gunicorn_base = importlib.import_module('gunicorn.app.base')
class StandaloneApplication(gunicorn_base.BaseApplication):
def __init__(self, app, **kwargs):
self.kwargs = kwargs
self.app = app
super().__init__()
def load_config(self):
for key, value in self.kwargs.items():
if key in self.cfg.settings and value is not None:
self.cfg.set(key.lower(), value)
def load(self):
return self.app
StandaloneApplication(
app,
bind="0.0.0.0:{}".format(settings.PORT_NUMBER),
workers=4).run()