Codice di esempio connection pooling
Scopri alcuni codici di esempio di connection pooling particolarmente efficienti da aggiungere alle funzioni create con OCI Functions.
Per le funzioni che si connettono a risorse esterne, in genere si desidera includere il codice di connection pooling in una funzione per ridurre il tempo necessario per stabilire una connessione quando la funzione viene richiamata per la prima volta.
In questa sezione viene illustrato un codice di esempio di connection pooling particolarmente efficiente.
Esempio Python di codice connection pooling
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()