异步请求(Python)

描述

服务器端集成的一个好处是,通过使用并行机制,您可以利用服务器端提供的巨大带宽和计算资源。 Target Python SDK支持异步请求,这可以将有效目标时间减少为零。

支持的方法

Python

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

示例

在Python 3.9及更高版本中使用asyncio模块的非同步/等待的示例应用程序可能如下所示:

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)

此示例假设您使用的是Python 3.9及以上版本。 如果使用旧版本的Python,您仍然可以通过将options.callback传递到get_offers来发送异步请求。 查看示例Flask应用程序,了解有关使用回调或异步/等待异步执行的更多详细信息,请单击此处

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