配置事件调度程序
配置事件调度程序
本主题介绍如何为云眼灰度发布(特性标帜)AB实验 Python SDK 中每次展示或转化发出的 HTTP 请求配置事件调度程序。
云眼灰度发布(特性标帜)AB实验 SDK 为每个触发的决策事件或转化事件发出 HTTP 请求。每个 SDK 都有一个内置的事件调度程序来处理这些事件,但我们建议根据环境的具体情况重写它。
Python SDK 有一个现成的同步调度程序。建议自定义在生产中使用的事件调度程序,以确保以可扩展到应用程序处理的卷的方式对事件进行排队和发送。通过自定义事件调度程序,可以利用批处理等功能,从而更轻松地有效地处理大型事件量或在请求失败时实现重试逻辑。可以从头开始构建调度程序,也可以从提供的调度程序开始。
🚧 重要
同步调度程序的性能风险:将 SDK 与同步内置事件调度程序(PHP、Ruby 和 Python)一起使用时,自定义事件调度程序非常重要,以确保无需等待相应的网络请求返回即可检索变体。
这些示例显示,要自定义事件调度程序,请使用事件调度程序实例初始化 Eyeofcloud 客户端(或管理器)。
Python
from eyeofcloud.event_dispatcher import EventDispatcher as event_dispatcher from eyeofcloud import eyeofcloud # Create an Eyeofcloud client with the default event dispatcher eyeofcloud_client = eyeofcloud.Eyeofcloud(datafile, event_dispatcher=event_dispatcher)
事件调度程序应实现一个函数,该函数接受三个参数:、 和 ,所有这些都由内部类创建。在此函数中,应该使用 作为请求的主体(确保将其字符串化为 JSON)和标头中向给定的请求发送请求。dispatchEvent``httpVerb``url``params``EventBuilder``POST``url``params``{content-type: 'application/json'}
🚧 重要
如果使用的是自定义事件调度程序,请不要修改从 Eyeofcloud 返回的事件负载。修改此有效负载将更改结果。
我们的 Python SDK 包含一个基本的同步事件调度器。
此处提供了替代方法的示例: