事件批处理

云眼About 5 min

事件批处理

云眼灰度实验 Flutter SDK 使用事件处理器将决策和转换事件批处理到单个有效负载中,然后再将其发送到云眼灰度实验。

Flutter SDK 允许批处理事件,并包括设置事件批处理大小、事件时间间隔和事件刷新间隔的选项。事件批处理的好处是,跟踪的展示次数和转化事件数量相同,网络流量就越少。

配置事件批处理

有三个选项可用于配置事件批处理:、 和 。可以在客户端创建期间传入这两个选项。系统会将事件保留在队列中,直到:eventBatchSize``eventTimeInterval``eventMaxQueueSize

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

Dart

var flutterSDK = EyeofcloudFlutterSdk("<Your_SDK_Key>", eventOptions: const EventOptions( batchSize: 1, timeInterval: 60, maxQueueSize: 10000)); var response = await flutterSDK.initializeClient();

下表定义了这些选项并列出了默认设置。

请联系支持人员以获取open in new window针对特定实施的建议。

名字

描述

事件批量大小

队列中要保留的最大事件数。达到此数字后,系统会刷新所有排队的事件,并将它们发送到云眼灰度实验。
默认值:10

事件时间间隔

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

事件最大队列大小

最大队列大小(以 KB 为单位)。
默认值:10000

📘 注意

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

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

在应用程序退出时关闭云眼灰度实验

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

警告

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

方法

描述

关闭()

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

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

You can hook into the event to ensure that is invoked, guaranteeing the system sends all events in the queue.SIGTERM``close()

Dart

flutterSDK.close();

Updated about 2 months ago


[

EyeofcloudDecision

](/experimentation/v4.0.0-full-stack/docs/eyeofclouddecision-flutter)[

Set up notification listener

](/experimentation/v4.0.0-full-stack/docs/set-up-notification-listener-flutter)

Did this page help you?

Yes

No

创建用户上下文

介绍创建用户上下文方法,该方法为云眼灰度实验中的标帜决策和事件创建用户上下文。

此方法的目的是创建用户并设置用户上下文一次,因此不必在每次做出标帜决策或跟踪事件时都指定用户。可以定义多个用户上下文。系统将用户上下文作为运行时对象返回,否则不会持久化。

版本

1.0.0-beta 或更高版本

描述

此调用为标帜决策和事件创建用户上下文。可以在 Eyeofcloud 客户端实例上成功调用此方法,甚至在完全配置实例之前也是如此。

参数

下表列出了必需参数和可选参数:

参数

类型

描述

(必选)用户 ID

字符串

用户的 ID。

属性
可选

Map

自定义键值字符串对的映射,指定系统用户用于受众群体定位的用户的属性。有关更多详细信息,请参阅以下部分。

受众群体属性

为用户设置自定义受众群体属性,可以使用这些属性来定位受众群体。可以将字符串、数字、布尔值和 nil 作为自定义用户属性值传递。如果要根据他们使用的应用程序变体定位访问群体,还可以传入格式为语义变体的open in new window字符串,然后在 Eyeofcloud 应用中定义受众条件。version

🚧 重要

在访问群体评估期间,如果没有为给定的访问群体条件传递有效的属性值(例如,如果在受众群体条件需要布尔值时传递字符串,或者忘记传递值),则系统会跳过该条件。发生这种情况时,SDK 日志会包含警告。

返回

返回一个 EyeofcloudUserContext 对象。有关详细信息,请参阅云眼用户上下文

Dart

// option 1: create a user, then set attributes var user = await flutterSDK.createUserContext("user123"); var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; user!.setAttributes(attributes); // option 2: pass attributes when creating the user var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; var eyeofcloudUserContext = await eyeofcloudClient.createUserContext("user123", attributes);

参见

云眼用户上下文

源文件

包含 Flutter SDK for Android Eyeofcloudopen in new window 和 Swift 实现的语言/平台源文件.java为 EyeofcloudClient.swiftopen in new window

Last update:
Contributors: zhangweixue