Skip to content

[Python] Allow multiple requests in parallel in Python client#4187

Merged
wing328 merged 2 commits intoswagger-api:masterfrom
hermansc:master
Nov 18, 2016
Merged

[Python] Allow multiple requests in parallel in Python client#4187
wing328 merged 2 commits intoswagger-api:masterfrom
hermansc:master

Conversation

@hermansc
Copy link
Copy Markdown
Contributor

PR checklist

  • Read the contribution guildelines.
  • Ran the shell/batch script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates)
  • Filed the PR against the correct branch: master for non-breaking changes and 2.3.0 branch for breaking (non-backward compatible) changes.

Description of the PR

If you tried to do two parallel calls to the same API object in the Python client you would get an error from urllib3 connection pool:

Connection pool is full, discarding connection: ***

Because the default maxsize=1

By defaulting to a higher maxsize we mitigate for the common use case where a user is running a couple of requests in parallel.

Ideally, in the future, this should be a configuration parameter together with the pool size.

If you tried to do two parallel calls to the same API object in the
Python client you would get an error from urllib3 connection pool:

  Connection pool is full, discarding connection: ***

Because the default maxsize=1:
https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L162

By defaulting to a higher maxsize we mitigate for the common use case
where a user is running a couple of requests in parallel.

Ideally, in the future, this should be a configuration paramater
together with the pool size.
@wing328
Copy link
Copy Markdown
Contributor

wing328 commented Nov 16, 2016

@hermansc thanks for the PR. Please run ./bin/python-petstore.sh to update the Python Petstore sample so that the CIs can verify the change.

cc @scottrw93

@hermansc
Copy link
Copy Markdown
Contributor Author

@wing328 Thanks for picking up this one. I've added the sample code now - just forgot to add it to my commit earlier.

@wing328 wing328 merged commit 2dafdff into swagger-api:master Nov 18, 2016
@wing328
Copy link
Copy Markdown
Contributor

wing328 commented Nov 18, 2016

@hermansc thanks for the PR.

May I know if you've time to add maxsize to configuration.py?

@hermansc
Copy link
Copy Markdown
Contributor Author

@wing328 I'll have a look at it this weekend :)

@wing328 wing328 changed the title Allow multiple requests in parallel in Python client [Python] Allow multiple requests in parallel in Python client Feb 20, 2017
davidgri pushed a commit to davidgri/swagger-codegen that referenced this pull request May 11, 2017
* Allow multiple requests in parallel in Python client

If you tried to do two parallel calls to the same API object in the
Python client you would get an error from urllib3 connection pool:

  Connection pool is full, discarding connection: ***

Because the default maxsize=1:
https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L162

By defaulting to a higher maxsize we mitigate for the common use case
where a user is running a couple of requests in parallel.

Ideally, in the future, this should be a configuration paramater
together with the pool size.

* Add sample code after changing maxsize
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants