Beispielcode für Connection Pooling
Erfahren Sie mehr über einige besonders effiziente Beispielcodes für das Connection Pooling, um Funktionen hinzuzufügen, die Sie mit OCI Functions erstellen.
Bei Funktionen, die eine Verbindung zu externen Ressourcen herstellen, möchten Sie in der Regel Connection Pooling-Code in eine Funktion aufnehmen, um die Zeit zu verkürzen, die zum Herstellen einer Verbindung erforderlich ist, wenn die Funktion zum ersten Mal aufgerufen wird.
In diesem Abschnitt wird ein besonders effizienter Beispielcode für das Connection Pooling dargestellt.
Python-Beispiel für Connection Pooling-Code
import requests, json, logging
def send_to_endpoint(data: list, rest_endpoint: str):
"""
This function demonstrates best practices to efficiently POST data payloads to REST API endpoints.
Because the Session and HTTPAdapter negotiate and retain TLS sessions with endpoints for the life of
the connection pool, it eliminates expensive TLS re-negotiation per POST.
"""
session = None
try:
session = requests.Session()
adapter = requests.adapters.HTTPAdapter(pool_connections=10, pool_maxsize=10)
session.mount('https://', adapter)
http_headers = {'Content-type': 'application/json'}
for item in data:
resp = session.post(rest_endpoint, data=json.dumps(item), headers=http_headers)
if resp.status_code not in [200, 202]:
raise RuntimeError(f'POST Error / {resp.status_code} / {resp.text}')
logging.info(f'POST Success / {resp.status_code} / {resp.text}')
finally:
session.close()