配置事件调度程序

云眼About 2 min

配置事件调度程序

本主题介绍如何在云眼灰度实验 Swift SDK 中为每次展示或转化发出的 HTTP 请求配置事件调度程序。

云眼灰度实验 SDK 为每个触发的决策事件或转化事件发出 HTTP 请求。每个 SDK 都有一个内置的事件调度程序来处理这些事件,但我们建议根据环境的具体情况重写它。

建议自定义在生产中使用的事件调度程序,以确保以可扩展到应用程序处理的卷的方式对事件进行排队和发送。可以从头开始构建调度程序,也可以从提供的调度程序开始。

与大多数其他 SDK 不同,为 Swift 提供的调度程序包括事件队列、事件批处理和刷新。如果应用处于脱机状态,事件将排队,并在应用再次联机时转发到服务器。

这些示例显示,要自定义事件调度程序,请使用事件调度程序实例初始化 Eyeofcloud 客户端(或管理器)。

Swift

// create EyeofcloudClient with a custom EventDispatcher 
let customEventDispatcher = CustomEventDispatcher()   

// or you can simply adjust parameters of DefaultEventDispatcher to disable batching (timerInterval=0), etc 
let customEventDispatcher = DefaultEventDispatcher(timerInterval: 0)      

eyeofcloud = EyeofcloudClient(sdkKey: "<Your_SDK_Key>",                              
                                eventDispatcher: customEventDispatcher)

目标-C

// create EyeofcloudClient with a custom EventDispatcher CustomEventDispatcher
*customEventDispatcher = [[CustomEventDispatcher alloc] init];       

self.eyeofcloud = [[EyeofcloudClient alloc] initWithSdkKey:@"<Your_SDK_Key>"
                                 logger:nil                                 
                                 eventDispatcher:customEventDispatcher                                 
                                 userProfileService:nil                                 
                                 periodicDownloadInterval:5*60                                                        
                                 defaultLogLevel:EyeofcloudLogLevelInfo];

事件调度程序应实现一个 dispatchEvent函数,该函数接受三个参数:

  • httpVerb
  • url
  • params

这些参数由内部类EventBuilder创建。在此函数中,应该使用params作为请求的主体(确保将其字符串化为 JSON)和标头中{content-type: 'application/json'}向给定的url请求发送POST请求。

🚧 重要

如果使用的是自定义事件调度程序,请不要修改从云眼灰度实验返回的事件负载。修改此有效负载将更改结果。

源文件

Swift SDK 包含的事件处理程序实现,DefaultEventDispatcheropen in new window

Last update:
Contributors: zhangweixue