From a29b0c8028a477cdffbf5350d80615f58e0146f2 Mon Sep 17 00:00:00 2001 From: Ely <33735637+EyalMK@users.noreply.github.com> Date: Wed, 7 May 2025 19:11:12 +0000 Subject: [PATCH 1/2] Worker threads WSGI Middleware Configurable --- connexion/apps/flask.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/connexion/apps/flask.py b/connexion/apps/flask.py index 8796a74f9..25f8bc1c7 100644 --- a/connexion/apps/flask.py +++ b/connexion/apps/flask.py @@ -127,7 +127,7 @@ def add_url_rule( class FlaskASGIApp(SpecMiddleware): - def __init__(self, import_name, server_args: dict, **kwargs): + def __init__(self, import_name, server_args: dict, worker_threads, **kwargs): self.app = flask.Flask(import_name, **server_args) self.app.json = flask_utils.FlaskJSONProvider(self.app) self.app.url_map.converters["float"] = flask_utils.NumberConverter @@ -138,7 +138,7 @@ def __init__(self, import_name, server_args: dict, **kwargs): self.app.config["TRAP_BAD_REQUEST_ERRORS"] = True self.app.config["TRAP_HTTP_EXCEPTIONS"] = True - self.asgi_app = WSGIMiddleware(self.app.wsgi_app) + self.asgi_app = WSGIMiddleware(self.app.wsgi_app, workers=worker_threads) def add_api(self, specification, *, name: t.Optional[str] = None, **kwargs): api = FlaskApi(specification, **kwargs) @@ -175,6 +175,7 @@ def __init__( lifespan: t.Optional[Lifespan] = None, middlewares: t.Optional[list] = None, server_args: t.Optional[dict] = None, + worker_threads: t.Optional[int] = 10, specification_dir: t.Union[pathlib.Path, str] = "", arguments: t.Optional[dict] = None, auth_all_paths: t.Optional[bool] = None, @@ -223,8 +224,10 @@ def __init__( :obj:`validators.VALIDATOR_MAP`. :param security_map: A dictionary of security handlers to use. Defaults to :obj:`security.SECURITY_HANDLERS` + :param worker_threads: Number of worker threads for WSGI middleware wrapping FlaskApp; for handling FlaskApp requests. + Defaults to 10. """ - self._middleware_app = FlaskASGIApp(import_name, server_args or {}) + self._middleware_app = FlaskASGIApp(import_name, server_args or {}, worker_threads=worker_threads) super().__init__( import_name, From 3936f16aa1f83ba594bb5587cdc77440e237ed39 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 19:12:50 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- connexion/apps/flask.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/connexion/apps/flask.py b/connexion/apps/flask.py index 25f8bc1c7..7f2a6ca0f 100644 --- a/connexion/apps/flask.py +++ b/connexion/apps/flask.py @@ -227,7 +227,9 @@ def __init__( :param worker_threads: Number of worker threads for WSGI middleware wrapping FlaskApp; for handling FlaskApp requests. Defaults to 10. """ - self._middleware_app = FlaskASGIApp(import_name, server_args or {}, worker_threads=worker_threads) + self._middleware_app = FlaskASGIApp( + import_name, server_args or {}, worker_threads=worker_threads + ) super().__init__( import_name,