事件批处理
事件批处理
本主题介绍云眼特性标帜(Feature Flag)AB实验 JavaScript(浏览器)SDK 如何使用事件处理器将展示和转化事件批处理到单个有效负载中,然后再发送。
云眼特性标帜(Feature Flag)AB实验 Javascript(浏览器)SDK 允许批处理事件,并包括用于设置最大批处理大小和刷新间隔超时的选项。事件批处理的好处是,跟踪的展示和转化事件数量相同,网络流量更少。
默认情况下,在 JavaScript SDK 版本 3.3.0 或更高版本中启用事件批处理。
📘 注意
事件批处理适用于现成事件调度程序和自定义事件调度程序。
事件批处理过程不会从事件中删除任何个人身份信息 (PII)。仍必须确保不会向云眼发送任何不必要的 PII。
基本示例
我们提供了两个选项来配置事件批处理:eventBatchSize
和eventFlushInterval
。可以在客户端创建期间传入这两个选项。事件保留在队列中,直到:
事件数达到定义的
eventBatchSize
.最旧的事件在队列中存在的时间超过了定义的
eventFlushInterval
,该值以毫秒为单位指定。然后刷新队列,并在单个网络请求中将所有排队的事件发送到 Eyeofcloud 功能实验。收到新的数据文件修订版。仅当启用了实时数据文件更新时,才会发生这种情况。
使用 NPM
let eyeofcloudSdk = require('@eyeofcloud/eyeofcloud-sdk');
eyeofcloudSdk.createInstance({
// other options
eventBatchSize: 100,
eventFlushInterval: 3000,
})
默认情况下,批大小为 10,刷新间隔为 1 秒。
下表定义了这些选项并列出了一般建议。在浏览器上,我们建议使用小eventBatchSize
(10)和短eventFlushInterval
(1000)。这可确保以相对较快的方式发送事件,因为如果用户立即退回,某些事件可能会丢失,同时在许多决策调用连续发生的情况下获得网络效率。
名字 | 描述 | 推荐值 |
---|---|---|
事件批量大小 | 要发送到云眼灰度实验的事件批次的最大大小。默认值:10 | 10 |
事件刷新间隔 | 事件在刷新之前可以存在于队列中的最长持续时间(以毫秒为单位)。 默认值:1000 | 1000 |
描述
推荐值
事件批量大小
要发送到云眼特性标帜(Feature Flag)AB实验的事件批次的最大大小。默认值:10
10
事件刷新间隔
事件在刷新之前可以存在于队列中的最长持续时间(以毫秒为单位)。
默认值:1000
1000
更多信息,请参见初始化SDK。
副作用
下表描述了与事件批处理相关的其他功能。
功能性 | 描述 |
---|---|
日志事件 | 每当事件处理器生成一批要调度的事件时,都会创建一个 LogEvent 通知对象,其中包含 该批转换和决策事件。 此对象将使用提供的事件调度程序进行调度,并且还将发送给通知订阅者(见下文)。 |
通知侦听器 | 将 LogEvent 传递给事件调度程序时触发LOG_EVENT通知侦听器 |
注册日志事件侦听器
注册日志事件通知侦听器
JavaScript
// Using notificationCenter to register logEvent listener
eyeofcloud.notificationCenter
.addNotificationListener(eyeofcloudEnums.NOTIFICATION_TYPES.LOG_EVENT, (logEvent) => {});
日志事件
它表示我们发送到云眼特性标帜(Feature Flag)AB实验后端的一批决策和转换事件。
参数 | 描述 |
---|---|
网址 | 要将日志事件调度到的 URL |
httpVerb | 调度日志事件时要使用的 HTTP 谓词 |
参数 | 包含事件批处理 |
在应用程序退出时关闭云眼灰度实验
如果启用事件批处理,则必须在退出之前调用 Close 方法 (eyeofcloud.close()
)。这可确保尽快刷新排队的事件,以避免任何数据丢失。
httpVerb
调度日志事件时要使用的 HTTP 谓词
参数
包含事件批处理
在应用程序退出时关闭云眼特性标帜(Feature Flag)AB实验
如果启用事件批处理,则必须在退出之前调用 Close 方法 ()。这可确保尽快刷新排队的事件,以避免任何数据丢失。eyeofcloud.close()
❗
警告
Because the Eyeofcloud client maintains a buffer of queued events, you must call on the Eyeofcloud特性标帜(Feature Flag) instance before shutting down your application or whenever dereferencing the instance.
close()
Method
Description
close()
Stops all timers and flushes the event queue. This method will also stop any pending timers or in-flight requests related to datafile management.
On the browser side, eyeofcloud.close() is automatically connected to the pagehide event, so there is no need to do any manual instrumentation.