You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
1.1 KiB
22 lines
1.1 KiB
7 months ago
|
# Thread Safety
|
||
|
|
||
|
This page contains important information about the thread safety of this library.
|
||
|
|
||
|
## The httplib2.Http() objects are not thread-safe
|
||
|
|
||
|
The google-api-python-client library is built on top of the [httplib2](https://github.com/httplib2/httplib2) library, which is not thread-safe. Therefore, if you are running as a multi-threaded application, each thread that you are making requests from must have its own instance of `httplib2.Http()`.
|
||
|
|
||
|
The easiest way to provide threads with their own `httplib2.Http()` instances is to either override the construction of it within the service object or to pass an instance via the http argument to method calls.
|
||
|
|
||
|
```python
|
||
|
# Create a new Http() object for every request
|
||
|
def build_request(http, *args, **kwargs):
|
||
|
new_http = httplib2.Http()
|
||
|
return apiclient.http.HttpRequest(new_http, *args, **kwargs)
|
||
|
service = build('api_name', 'api_version', requestBuilder=build_request)
|
||
|
|
||
|
# Pass in a new Http() manually for every request
|
||
|
service = build('api_name', 'api_version')
|
||
|
http = httplib2.Http()
|
||
|
service.stamps().list().execute(http=http)
|
||
|
```
|