文件Target開發人員指南

非同步請求(Python)

最後更新: 2024年7月20日
  • 主題:

建立對象:

  • undefined

說明

伺服器端整合的好處之一,就是您可以使用平行處理功能,在伺服器端利用龐大的頻寬和運算資源。 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