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

Un exemple d’application qui utilise la méthode asyncio async/attente du module en Python 3.9+ pourrait ressembler à ceci :

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 to get_offers. Consultez l’exemple d’application Flask pour plus d’informations sur l’exécution asynchrone à l’aide de rappels ou async/attente, here.

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