Richieste asincrone (Python)

Ultimo aggiornamento: 2023-07-27
  • Argomenti:
  • APIs/SDKs
    Visualizza ulteriori informazioni su questo argomento
  • Creato per:
  • Developer

Descrizione

Uno dei vantaggi dell'integrazione lato server è la possibilità di sfruttare l'enorme larghezza di banda e le risorse informatiche disponibili sul lato server utilizzando il parallelismo. Target L’SDK di Python supporta le richieste asincrone, che possono ridurre a zero il tempo di destinazione effettivo.

Metodi supportati

Python

get_offers(options)
send_notifications(options)
get_attributes(mbox_names, options)

Esempio

Un'applicazione di esempio che utilizza asyncio Il modulo async/await in Python 3.9+ potrebbe essere simile al seguente:

Python

async def execute_mboxes(self, mboxes):
    context = Context(channel=ChannelType.WEB)
    execute = ExecuteRequest(mboxes=mboxes)
    delivery_request = DeliveryRequest(context=context, execute=execute)

    get_offers_options = {
      "request": delivery_request
    }
    return await asyncio.to_thread(target_client.get_offers, get_offers_options)

async def get_target_delivery_response(mboxes):
    target_delivery_response = await execute_mboxes(mboxes)
    response = Response(target_delivery_response.get("response").to_str(), status=200, mimetype='application/json')
    return response

mboxes = [MboxRequest(name="a1-serverside-ab", index=1)]
return asyncio.run(get_target_delivery_response(mboxes)

Questo esempio presuppone che tu stia utilizzando Python 3.9+. Se utilizzi una versione precedente di Python puoi comunque inviare richieste asincrone passando options.callback a get_offers. Controlla l’app Flask di esempio per ulteriori dettagli sull’esecuzione asincrona utilizzando i callback o asincrono/await. qui.

In questa pagina