事件批处理

云眼About 3 min

事件批处理

本主题介绍云眼灰度发布(特性标帜)AB实验 JavaScript(节点)SDK 如何使用事件处理器将决策和转换事件批处理到单个有效负载中,然后再将其发送到云眼。

从变体 3.3.0 开始,SDK 允许批处理事件,并包括用于设置最大批处理大小和刷新间隔超时的选项。事件批处理的好处是,跟踪的展示和转化事件数量相同,网络流量更少。

默认情况下,在 JavaScript SDK 版本 3.3.0 及更高版本中启用事件批处理。

📘 注意

事件批处理适用于现成事件调度程序和自定义事件调度程序。

事件批处理过程不会从事件中删除任何个人身份信息 (PII)。仍必须确保不会向云眼发送任何不必要的 PII。

配置事件批处理

我们提供了两个选项来配置事件批处理:和 。可以在客户端创建期间传入这两个选项。事件保留在队列中,直到:eventBatchSize``eventFlushInterval

  • 事件数达到定义的 .eventBatchSize
  • 最旧的事件在队列中存在的时间超过了定义的 ,该值以毫秒为单位指定。然后刷新队列,并在单个网络请求中将所有排队的事件发送到 Eyeofcloud 功能实验。eventFlushInterval
  • 收到新的数据文件修订版。仅当启用了实时数据文件更新时,才会发生这种情况。

JavaScript

const eyeofcloudSdk = require('@eyeofcloud/eyeofcloud-sdk') eyeofcloudSdk.createInstance({ // other options eventBatchSize: 100, eventFlushInterval: 3000, })

下表定义了这些选项,并列出了浏览器和服务器默认设置的一般建议。在浏览器上,我们建议使用小(10)和短(1000)。这可确保以相对较快的方式发送事件,因为如果用户立即退回,某些事件可能会丢失,同时在许多决策调用连续发生的情况下获得网络效率。 eventBatchSize``eventFlushInterval

对于服务器,这些数字更加灵活,应根据组织的流量和需求进行设置。请联系支持人员以获取open in new window针对特定实施的建议。

名字

描述

推荐值

事件批量大小

队列中要保留的最大事件数。达到此数字后,将刷新所有排队的事件并将其发送到云眼灰度发布(特性标帜)AB实验。
默认值:10

注意:将此值设置为 1,不会对事件进行批处理,并且事件请求的行为与 3.3.0 之前的 JavaScript SDK 中的行为完全相同。

根据组织的要求。

事件刷新间隔

事件在刷新之前可以存在于队列中的最长持续时间(以毫秒为单位)。
默认值:30000 ms

根据组织的要求。

📘 注意

最大有效负载大小为 3.5 MB。如果生成的批处理有效负载超过此限制,请求将被拒绝,并显示 400 响应代码 .Bad Request Error

负载大小较大的最常见原因是批大小较高。如果有效负载超出大小限制,请尝试配置较小的批大小。

在应用程序退出时关闭云眼灰度发布(特性标帜)AB实验

如果启用事件批处理,则必须在退出之前调用 Close 方法 ()。这可确保尽快刷新排队的事件,以避免数据丢失。eyeofcloud.close()

警告

由于 Eyeofcloud 客户端维护排队事件的缓冲区,因此必须在关闭应用程序之前或在取消引用实例时调用 Eyeofcloud 功能实验实例。close()

方法

描述

关闭()

停止所有计时器并刷新事件队列。此方法还将停止数据文件管理器发生的任何计时器。

注意:我们建议将此方法连接到正在运行的进程的终止信号。

可以挂钩到事件以确保调用该事件,从而保证发送队列中的所有事件。 SIGTERM``close()

节点

// respond to SIGTERM and close eyeofcloud process.on('SIGTERM', async () => { console.log('SIGTERM signal received.'); await eyeofcloud.close() process.exit(0) });

Last update:
Contributors: “zhangweixue”