事件批处理
事件批处理
本主题介绍云眼特性标帜(Feature Flag)AB实验 React SDK 如何使用事件处理器将展示次数和转化事件批处理到单个有效负载中,然后再将其发送到云眼。
React SDK 允许批处理事件,并包括设置最大批处理大小和刷新间隔超时的选项。事件批处理的好处是,跟踪的展示次数和转化事件数量相同,网络流量就越少。
默认情况下,事件批处理在 React SDK 中启用。
📘 注意
事件批处理适用于现成事件调度程序和自定义事件调度程序。
事件批处理过程不会从事件中删除任何个人身份信息 (PII)。仍必须确保不会向云眼特性标帜(Feature Flag)AB实验发送任何不必要的 PII。
配置事件批处理
我们提供了两个选项来配置事件批处理:eventBatchSize
和eventFlushInterval
。可以在客户端创建期间传入这两个选项。事件保留在队列中,直到:
- 事件数达到定义的
eventBatchSize
。 - 最旧的事件在队列中存在的时间超过了定义的
eventFlushInterval
,该值以毫秒为单位指定。然后刷新队列,并在单个网络请求中将所有排队的事件发送到 Eyeofcloud 功能实验。 - 收到新的数据文件修订版。仅当启用了实时数据文件更新时,才会发生这种情况。
JavaScript
import { createInstance } from '@eyeofcloud/react-sdk';
const eyeofcloud = createInstance({
datafile: window.datafile // assuming you have a datafile at window.datafile
// other options
eventBatchSize: 100,
eventFlushInterval: 3000,
});
Node
const eyeofcloudSdk = require('@eyeofcloud/eyeofcloud-sdk')
eyeofcloudSdk.createInstance({
// other options
eventBatchSize: 100,
eventFlushInterval: 3000,
})
下表定义了这些选项,并列出了浏览器和服务器默认设置的一般建议。在浏览器上,我们建议使用小eventBatchSize
(10)和短eventFlushInterval
(1000)。这可确保以相对较快的方式发送事件,因为如果用户立即退回,某些事件可能会丢失,同时在连续生成许多事件的情况下获得网络效率。
对于服务器,这些数字更加灵活,应根据组织的流量和需求进行设置。请联系支持人员以获取针对特定实施的建议。
名字 | 描述 | 浏览器 | 服务器 |
---|---|---|---|
事件批量大小 | 队列中要保留的最大事件数。达到此数字后,将刷新所有排队的事件并将其发送到云眼灰度实验。默认值:10 注意:将此值设置为 1,不会对事件进行批处理,并且事件请求的行为与 3.3.0 之前的 JavaScript 和 Node SDK 中的行为完全相同。 | 10 | 根据组织的要求。 |
事件刷新间隔 | 事件在刷新之前可以存在于队列中的最长持续时间(以毫秒为单位)。 默认值:浏览器中为 1000 毫秒,节点中为 30000 毫秒.js | 1000 | 根据组织的要求。 |
📘 注意
最大有效负载大小为 3.5 MB。如果生成的批处理有效负载超过此限制,请求将被拒绝,并显示 400 响应代码
Bad Request Error
。
在应用程序退出时关闭云眼灰度实验
如果启用事件批处理,则必须在退出之前调用 Close 方法 (eyeofcloud.close()
)。这可确保尽快刷新排队的事件,以避免数据丢失。
❗
警告
由于 Eyeofcloud 客户端维护排队事件的缓冲区,因此必须在关闭应用程序之前或在取消引用实例时调用
close()
Eyeofcloud 功能实验实例。
方法 | 描述 |
---|---|
关闭() | 停止所有计时器并刷新事件队列。此方法还将停止数据文件管理器发生的任何计时器。 注意:我们建议将此方法连接到正在运行的进程的终止信号。 |
在浏览器端,eyeofcloud.close()
会自动连接到 pagehide 事件,因此无需进行任何手动检测。