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()