配置事件调度程序
About 2 min
配置事件调度程序
本主题介绍如何为云眼灰度发布(特性标帜)AB实验 Go SDK 中每次展示或转化发出的 HTTP 请求配置事件调度程序。
云眼灰度发布(特性标帜)AB实验 SDK 为每个触发的决策事件或转化事件发出 HTTP 请求。每个 SDK 都有一个内置的事件调度程序来处理这些事件,但我们建议根据环境的具体情况重写它。
Go SDK 有一个开箱即用的异步调度程序。建议自定义在生产中使用的事件调度程序,以确保以可扩展到应用程序处理的卷的方式对事件进行排队和发送。通过自定义事件调度程序,可以利用批处理等功能,从而更轻松地有效地处理大型事件量或在请求失败时实现重试逻辑。可以从头开始构建调度程序,也可以从提供的调度程序开始。
这些示例显示,要自定义事件调度程序,请使用事件调度程序实例初始化 Eyeofcloud 客户端(或管理器)。
Go
import "github.com/eyeofcloud/go-sdk/pkg/event"
type CustomEventDispatcher struct {
}
// DispatchEvent dispatches event with callback
func (d *CustomEventDispatcher) DispatchEvent(event event.LogEvent) (bool, error) {
dispatchedEvent := map[string]interface{}{
"url": event.EndPoint,
"http_verb": "POST",
"headers": map[string]string{"Content-Type": "application/json"},
"params": event.Event,
}
return true, nil
}
Go
import (
"github.com/eyeofcloud/go-sdk/pkg/client"
"github.com/eyeofcloud/go-sdk/pkg/event"
)
eyeofcloudFactory := &client.EyeofcloudFactory{
SDKKey: "SDK_KEY_HERE",
}
customEventDispatcher := &CustomEventDispatcher{}
// Create an Eyeofcloud client with the custom event dispatcher
eocClient, e := eyeofcloudFactory.Client(client.WithEventDispatcher(customEventDispatcher))
事件调度程序应实现一个DispatchEvent
函数,该函数接受一个参数event.LogEvent
:。在此函数中,应该使用event.EndPoint
作为请求的主体(确保将其字符串化为 JSON)和标头中{content-type: 'application/json'}
向给定的event.EndPoint
请求发送POST
请求。
🚧 重要
如果使用的是自定义事件调度程序,请不要修改从云眼灰度发布(特性标帜)AB实验返回的事件负载。修改此有效负载将更改结果。
默认情况下,我们的 Go SDK 使用基本的异步事件调度程序。