Merge pull request #1678 from dozysun/servername-option

add --adapter option to support various of  bottle server adapter
This commit is contained in:
Miroslav Stampar
2016-01-27 09:44:31 +01:00
2 changed files with 11 additions and 3 deletions

View File

@@ -637,7 +637,7 @@ def download(taskid, target, filename):
return jsonize({"success": False, "message": "File does not exist"})
def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT):
def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, adapter='wsgiref'):
"""
REST-JSON API server
"""
@@ -655,7 +655,14 @@ def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT):
# Run RESTful API
try:
run(host=host, port=port, quiet=True, debug=False)
if adapter == 'gevent':
from gevent import monkey
monkey.patch_all()
elif adapter == 'eventlet':
import eventlet
eventlet.monkey_patch()
logger.debug('use {0} adapter run bottle'.format(adapter))
run(host=host, port=port, quiet=True, debug=False, server=adapter)
except socket.error, ex:
if "already in use" in getSafeExString(ex):
logger.error("Address already in use ('%s:%s')" % (host, port))