设置通知侦听器

云眼About 1 min

设置通知侦听器

本主题介绍如何为云眼灰度发布(特性标帜)AB实验 Java SDK 设置和删除通知侦听器。

通知侦听器触发您在 SDK 中触发某些操作时定义的回调函数。

最常见的用例是将所有灰度发布(特性标帜)决策的流发送到分析提供商或内部数据仓库,以将其与您拥有的有关用户的其他数据联接。

通知侦听器类型

有关通知侦听器类型和用例的更多信息,请参阅通知侦听器

有关代码示例,请参阅以下部分。

添加和删除所有通知侦听器

下面的示例代码演示如何添加侦听器、删除侦听器、删除特定类型的所有侦听器(例如所有决策侦听器)以及删除所有侦听器。

Java

import com.eyeofcloud.ab.notification.*; // Remove Notification Listener eyeofcloud.getNotificationCenter().removeNotificationListener(notificationId); // Remove all Notification Listeners eyeofcloud.getNotificationCenter().clearAllNotificationListeners(); // Remove all Notification Listeners of a certain type eyeofcloud.getNotificationCenter().clearNotificationListeners(DecisionNotification.class);

设置每种类型的通知侦听器

下面的示例代码演示如何设置每种类型的通知侦听器。

Java

import com.eyeofcloud.ab.notification.*; // import your third-party analytics integration here /************************************** * SET UP DECISION NOTIFICATION LISTENER **************************************/ int notificationId = eyeofcloud.addDecisionNotificationHandler((DecisionNotification decisionNotification) -> { // Access type on decisionObject to get type of decision String decisionType = decisionNotification.getType(); if (decisionType == "flag") { Map<String, ?> decisionInfo = decisionNotification.getDecisionInfo(); logger.debug(decisionInfo.get("flagKey")); logger.debug(decisionInfo.get("enabled")); logger.debug(decisionInfo.get("decisionEventDispatched")); // Send data to analytics provider here } }); /************************************** * SET UP LOG EVENT NOTIFICATION LISTENER **************************************/ int notificationId = eyeofcloud.addLogEventNotificationHandler(logEvent -> { // process the logEvent object here (send to analytics provider, audit/inspect data) }); /************************************** * SET UP EYEOFCLOUD CONFIG NOTIFICATION LISTENER **************************************/ // listen to EYEOFCLOUD_CONFIG_UPDATE to get updated data eyeofcloud.addUpdateConfigNotificationHandler(config -> { EyeofcloudConfig eyeofcloudConfig = eyeofcloud.getEyeofcloudConfig(); }); /************************************** * SET UP TRACK LISTENER **************************************/ eyeofcloud.addTrackNotificationHandler(trackNotification -> { // process the event here (send to analytics provider, audit/inspect data) });

Last update:
Contributors: “zhangweixue”