Requêtes asynchrones (Python)

Description

L’un des avantages de l’intégration côté serveur est que vous pouvez exploiter l’énorme bande passante et les ressources informatiques disponibles côté serveur en utilisant le parallélisme. Target Le SDK Python prend en charge les requêtes asynchrones, ce qui peut réduire le temps cible effectif à zéro.

Méthodes prises en charge

Python

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

Exemple

Voici un exemple d’application qui utilise le module asyncio async/attente en Python 3.9+ :

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)

Cet exemple suppose que vous utilisez Python 3.9+. Si vous utilisez une ancienne version de Python, vous pouvez toujours envoyer des requêtes asynchrones en transmettant options.callback à get_offers. Consultez l’exemple d’application Flask pour plus d’informations sur l’exécution asynchrone à l’aide de rappels ou async/attente, ici.

recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3