Asynchrone Anfragen (Python)
- Themen:
- APIs/SDKs
Erstellt für:
- Entwickler
Beschreibung
Ein Vorteil der Server-seitigen Integration besteht darin, dass die auf der Server-Seite verfügbaren enormen Bandbreite- und Rechenressourcen durch die Verwendung von Parallelität genutzt werden können. Target Python SDK unterstützt asynchrone Anfragen, die die effektive Zielzeit auf null reduzieren können.
Unterstützte Methoden
Python
get_offers(options)
send_notifications(options)
get_attributes(mbox_names, options)
Beispiel
Eine Beispielanwendung, die das asynchrone/erwartete Verhalten des asyncio
-Moduls in Python 3.9+ verwendet, könnte wie folgt aussehen:
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)
In diesem Beispiel wird davon ausgegangen, dass Sie Python 3.9+ verwenden. Wenn Sie eine ältere Python-Version verwenden, können Sie weiterhin asynchrone Anfragen senden, indem Sie options.callback
an get_offers
übergeben. In der Beispiel-Flask-App finden Sie weitere Informationen zur asynchronen Ausführung mithilfe von Callbacks oder async/await ().