mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2024-12-25 08:21:04 -06:00
Use cheroot as default production server for pgAdmin4. Fixes #5017
If DEBUG is true then we used the default flask server.
This commit is contained in:
parent
a6841bb1e1
commit
15c518f0f1
@ -14,6 +14,7 @@ New features
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #5017 <https://redmine.postgresql.org/issues/5017>`_ - Use cheroot as default production server for pgAdmin4.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
@ -15,6 +15,7 @@
|
||||
# ignored when building a PIP Wheel.
|
||||
##############################################################################
|
||||
blinker==1.4
|
||||
cheroot==8.2.1
|
||||
Flask==1.0.2
|
||||
Werkzeug>=0.15.0
|
||||
Flask-Gravatar==0.5.0
|
||||
|
@ -13,6 +13,7 @@ to start a web server."""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from cheroot.wsgi import Server as CherootServer
|
||||
|
||||
if sys.version_info[0] >= 3:
|
||||
import builtins
|
||||
@ -190,15 +191,29 @@ if __name__ == '__main__':
|
||||
# Reference:
|
||||
# https://github.com/pallets/werkzeug/issues/220#issuecomment-11176538
|
||||
try:
|
||||
app.run(
|
||||
host=config.DEFAULT_SERVER,
|
||||
port=server_port,
|
||||
use_reloader=(
|
||||
(not PGADMIN_RUNTIME) and app.debug and
|
||||
os.environ.get("WERKZEUG_RUN_MAIN") is not None
|
||||
),
|
||||
threaded=config.THREADED_MODE
|
||||
)
|
||||
|
||||
if config.DEBUG:
|
||||
app.run(
|
||||
host=config.DEFAULT_SERVER,
|
||||
port=server_port,
|
||||
use_reloader=(
|
||||
(not PGADMIN_RUNTIME) and app.debug and
|
||||
os.environ.get("WERKZEUG_RUN_MAIN") is not None
|
||||
),
|
||||
threaded=config.THREADED_MODE
|
||||
)
|
||||
else:
|
||||
# Can use cheroot instead of flask dev server when not in debug
|
||||
# 10 is default thread count in CherootServer
|
||||
num_threads = 10 if config.THREADED_MODE else 1
|
||||
prod_server = CherootServer(
|
||||
(config.DEFAULT_SERVER, server_port),
|
||||
wsgi_app=app,
|
||||
numthreads=num_threads,
|
||||
server_name=config.APP_NAME)
|
||||
try:
|
||||
print("Using production server...")
|
||||
prod_server.start()
|
||||
except KeyboardInterrupt:
|
||||
prod_server.stop()
|
||||
except IOError:
|
||||
app.logger.error("Error starting the app server: %s", sys.exc_info())
|
||||
|
Loading…
Reference in New Issue
Block a user