From a5491293dd4809a39d53a5ee01202f62b03d3d38 Mon Sep 17 00:00:00 2001 From: Allan Saddi Date: Mon, 4 Apr 2011 23:02:16 -0700 Subject: Add threadpool options to Paste factories. #59 --- ChangeLog | 4 ++++ flup/server/paste_factory.py | 37 +++++++++++++++++++++++++++++++------ 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4b444d2..14a615d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-04-04 Allan Saddi + + * Add threadpool options to Paste factories. + 2011-02-19 Allan Saddi * When deriving PATH_INFO from REQUEST_URI, take SCRIPT_NAME into account. diff --git a/flup/server/paste_factory.py b/flup/server/paste_factory.py index 40721b1..d617dcc 100644 --- a/flup/server/paste_factory.py +++ b/flup/server/paste_factory.py @@ -30,18 +30,26 @@ def aslist(obj, sep=None, strip=True): def run_ajp_thread(wsgi_app, global_conf, scriptName='', host='localhost', port='8009', - allowedServers='127.0.0.1', debug=NoDefault): + allowedServers='127.0.0.1', debug=NoDefault, + minSpare=None, maxSpare=None, maxThreads=None): import flup.server.ajp addr = (host, int(port)) if debug is NoDefault: debug = global_conf.get('debug', False) debug = asbool(debug) + threadpool_args = {} + if minSpare is not None: + threadpool_args['minSpare'] = int(minSpare) + if maxSpare is not None: + threadpool_args['maxSpare'] = int(maxSpare) + if maxThreads is not None: + threadpool_args['maxThreads'] = int(maxThreads) s = flup.server.ajp.WSGIServer( wsgi_app, scriptName=scriptName, bindAddress=addr, allowedServers=aslist(allowedServers), - debug=debug, + debug=debug, **threadpool_args ) s.run() @@ -76,7 +84,8 @@ def run_ajp_fork(wsgi_app, global_conf, def run_fcgi_thread(wsgi_app, global_conf, host=None, port=None, socket=None, umask=None, - multiplexed=False, debug=NoDefault): + multiplexed=False, debug=NoDefault, + minSpare=None, maxSpare=None, maxThreads=None): import flup.server.fcgi if socket: assert host is None and port is None @@ -91,11 +100,19 @@ def run_fcgi_thread(wsgi_app, global_conf, if debug is NoDefault: debug = global_conf.get('debug', False) debug = asbool(debug) + threadpool_args = {} + if minSpare is not None: + threadpool_args['minSpare'] = int(minSpare) + if maxSpare is not None: + threadpool_args['maxSpare'] = int(maxSpare) + if maxThreads is not None: + threadpool_args['maxThreads'] = int(maxThreads) s = flup.server.fcgi.WSGIServer( wsgi_app, bindAddress=sock, umask=umask, multiplexed=asbool(multiplexed), - debug=debug) + debug=debug, **threadpool_args + ) s.run() def run_fcgi_fork(wsgi_app, global_conf, @@ -139,18 +156,26 @@ def run_fcgi_fork(wsgi_app, global_conf, def run_scgi_thread(wsgi_app, global_conf, scriptName=NoDefault, host='localhost', port='4000', allowedServers='127.0.0.1', - debug=NoDefault): + debug=NoDefault, + minSpare=None, maxSpare=None, maxThreads=None): import flup.server.scgi addr = (host, int(port)) if debug is NoDefault: debug = global_conf.get('debug', False) debug = asbool(debug) + threadpool_args = {} + if minSpare is not None: + threadpool_args['minSpare'] = int(minSpare) + if maxSpare is not None: + threadpool_args['maxSpare'] = int(maxSpare) + if maxThreads is not None: + threadpool_args['maxThreads'] = int(maxThreads) s = flup.server.scgi.WSGIServer( wsgi_app, scriptName=scriptName, bindAddress=addr, allowedServers=aslist(allowedServers), - debug=debug, + debug=debug, **threadpool_args ) s.run() -- cgit v1.2.1