第三十二章 开发Productions - ObjectScript Productions - 定义警报处理器 - 使用路由警报处理器

news/2025/2/22 5:34:25/

文章目录

  • 第三十二章 开发Productions - ObjectScript Productions - 定义警报处理器 - 使用路由警报处理器
  • 使用路由警报处理器
    • 将警报处理器定义为路由进程
    • 定义业务操作
  • 将自定义代码添加到警报管理
    • 警报管理器
  • 通知管理器
  • 警报监视器
  • 通知操作

第三十二章 开发Productions - ObjectScript Productions - 定义警报处理器 - 使用路由警报处理器

使用路由警报处理器

如果需要通过多种输出机制联系用户,警报处理器应该是一个业务流程,用于确定如何在消息中路由 Ens.AlertReques。在这种情况下,Productions必须为每个输出机制包含一个额外的业务操作,并且警报处理器将消息转发到这些业务操作。

将警报处理器定义为路由进程

要将警报处理器定义为路由流程,请创建一个可以在消息中接收 Ens.AlertRequest 的业务流程类。

业务流程将检查消息并将它们转发给不同的业务操作,具体取决于警报内容和包含的任何逻辑。

逻辑可能需要考虑以下因素:

  • 不同用户的不同要求
  • 根据一天中的时间不同的要求
  • 组织的问题解决政策和程序

可以在使用 EnsLib.MsgRouter.RoutingEngine类作为 Ens.Alert 路由进程。此类提供设置业务规则名称。如果将此设置指定为路由规则集的名称,则此业务主机会使用该规则集中的逻辑来转发它收到的所有消息。

定义业务操作

可以定义每个所需的业务操作,如使用简单电子邮件警报处理器或使用简单出站适配器警报处理器中所述。

将自定义代码添加到警报管理

警报管理允许将警报分配给用户、跟踪警报的状态以及管理解决警报的进度。有关警报管理的概述,请参阅配置警报管理,其中描述了如何配置警报管理组件以及定义警报管理的规则和数据转换。本节介绍如何将自定义代码添加到警报管理组件。

警报管理框架具有以下架构:

  • 托管警报在其整个生命周期中的单个持久对象。
  • Alert ManagerNotification ManagerAlert Monitor 具有相同的整体内部结构。当这些组件之一被调用时,它会分三个阶段执行其功能:
  1. 首先,如果组件由子类实现,则组件执行 OnProcess 方法。通过实施此方法,可以在组件中包含自定义代码。如果 OnProcess 方法设置了一个标志,指示处理已完成,则组件退出。
  2. 接下来,组件评估其规则或为通知管理器评估其数据转换,它设置控制组件操作的参数。
  3. 最后,组件根据规则设置的参数或组件配置设置的默认值执行其操作。
  • Alert Notification 操作是一个更简单的组件,它可以格式化消息并将消息转发到它的目的地。

警报管理器

警报管理器具有 Ens.Alerting.AlertManager类,并且必须命名为 Ens.Alert。警报管理器接收来自所有生产组件的警报。警报管理器可以根据规则中指定的条件将警报提升为托管警报。警报管理器将托管警报发送到通知管理器。

警报管理器分三个阶段执行:

  1. 如果组件的类覆盖了 OnCreateManagedAlert() 方法,则执行覆盖。可以提供自定义代码来处理警报请求并在此方法中创建托管警报。如果不希望基本警报管理器代码评估规则、创建托管警报并将其发送到通知管理器,应该将 tProcessingComplete 参数设置为 1。在这种情况下,警报管理器不会采取进一步的操作。
  2. 评估 CreateManagedAlertRule 规则。此规则可以访问 tAlertContext。如果它返回真值 (1),则警报管理器创建托管警报。如果它返回 false,则警报管理器不会创建托管警报,警报只会写入日志。警报上下文提供对以下内容的访问:
  • 传入警报
  • 为发出警报的组件配置的警报组
  • 为发出警报的组件配置的业务伙伴
  • 警报所有者

该规则可以通过返回 0 来禁止将警报提升为托管警报,或者可以通过返回 1 将警报提升为托管警报。

3. 如果规则将 tCreateAlert 设置为 1,则警报管理器会创建一个托管警报,或者,如果没有定义 CreateManagedAlertRule 规则,警报管理器将采取默认操作并创建一个托管警报。警报管理器通过调用 OnCreateManagedAlert() 方法创建托管警报,该方法可以被扩展 Ens.Alerting.AlertManager类覆盖。 OnCreateManagedAlert() 的默认实现在托管警报中设置生产名称,并将当前所有者设置为未分配,值为空字符串。如果警报管理器创建了托管警报,它会将其发送到通知管理器。

通知管理器

通知管理器具有 Ens.Alerting.NotificationManager类,负责确定要通知的组以及要使用的通知操作。

通知管理器分三个阶段执行:

  1. 如果组件的类覆盖了 OnProcessNotificationRequest() 方法,则执行覆盖。如果覆盖将 pProcessingComplete 参数设置为 1,则通知管理器不会评估转换或应用默认操作。
  2. 如果已配置,则执行数据转换。有关数据转换的信息,请参阅添加通知管理器并定义其数据转换。
  3. 如果转换将 target.Notify 属性设置为 1 或者没有数据转换,则通知管理器将警报通知发送到每个目标中列出的组件并将地址列表传递到目标。

通知管理器不接收或发送托管警报对象,而是使用通知请求对象,该对象包含对持久托管警报对象的引用。

警报监视器

警报监视器查询当前时间超过 NextActionTime 值的所有打开的托管警报。它进行以下 SQL 查询:

"SELECT ID FROM Ens_Alerting.ManagedAlert WHERE IsOpen = 1 AND NextActionTime <= ?"

其中 $$$timeUTC 返回的当前时间被指定为参数。

警报监视器分别处理每个返回的托管警报消息。对于每个托管警报,它分三个阶段进行处理:

  1. 如果组件的类覆盖了 OnProcessOverdueAlert() 方法,则执行覆盖。可以提供自定义代码来处理警报。如果不希望基本警报监视器代码评估规则、更新托管警报并将其发送到通知管理器,您应该将 tProcessingComplete 参数设置为 1。在这种情况下,警报监视器不会采取进一步的操作。
  2. 评估 OverdueAlertRule 规则。此规则可以访问 tOverdueContext。逾期上下文提供对以下内容的访问:
  • 传入警报
  • 当前时间
  • NewNextActionTime
  • NewEscalationLevel

该规则可以通过返回 0 来禁止发送提醒,可以通过设置 NewNextActionTime 来设置警报监视器下次找到托管警报的时间,或者可以通过设置 NewEscalationLevel 来升级或降级托管警报。

可以覆盖警报规则的上下文以及警报监视器如何处理结果:

  • 可以通过覆盖 GetOnOverdueAlertContext() 方法向警报规则上下文添加其他信息。
  • 可以通过覆盖 OnProcessOverdueRuleResult() 方法来覆盖警报监视器处理规则结果的方式。否则,在基类中执行此方法。 OnProcessOverdueRuleResult() 方法负责升级托管警报。覆盖可以访问托管警报、tOverdueContexttSendNotificationtNotificationType。请注意,您应该复制基类实现的功能或通过调用 ##super() 来调用它。
  1. 如果规则返回 1Alert Monitor 将托管警报发送到 Notification Manager

通知操作

通知操作向用户组发送通知。如果使用多种机制发送通知,可以为每种传输方法设置单独的通知操作。


http://www.ppmy.cn/news/339338.html

相关文章

C#,码海拾贝(42)——病态线性方程组的“简单迭代解法”之C#源代码

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> /…

手机摄像头模组涉及的领域以及镜头的选择

摄像头一直主导着电子行业&#xff0c;因为它有很多应用&#xff0c;例如访客监控系统、监控系统、考勤系统等。我们今天使用的摄像头是智能的&#xff0c;并且具有许多早期摄像头所没有的功能。如今的摄像机不仅捕捉图像&#xff0c;还捕捉场景&#xff0c;并分析他们所看到的…

中艺人脸识别考勤机使用方法_刷脸机考勤机怎么使用?刷脸机考勤机使用方法...

刷脸机考勤机是一种采用人脸识别技术的考勤系统&#xff0c;不同型号、不同品牌的考勤工具的使用方法不尽相同。在使用过程中有些存在不支持同时打卡、后台定位职工位置、不支持内外勤协同管理等问题。结合常见的考勤系统存在的问题以及人脸识别技术的发展&#xff0c;一款新的…

如何用好企业微信

企业微信发布初期&#xff0c;总是会与钉钉同框出现&#xff0c;时至今日&#xff0c;还有很多的作者对企业微信和钉钉的区别做文章。毕竟在企业微信2.0版本以前&#xff0c;主要的重心是放在了企业内部高效办公层面&#xff0c;直到企业微信3.0版本的发布&#xff0c;新增了很…

基于OpenCV的人脸识别考勤系统——创业计划书

摘要 人脸识别技术,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流&#xff0c;并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术。人脸识别系统可使用的特征通常分为视觉特征、像素统计特征、…

带经纬度的水印相机_水印今日相机安卓版下载-水印相机拍照时间地点app下载v2.8.8.14-西西软件下载...

水印相机拍照时间地点app是一款可以定位的拍照软件,在这里拍摄的照片都可以自动添加,照片拍摄时间和地点还有经纬度,不管多久都可以知道照片的故事,需要的伙伴,赶紧来西西下载吧! 水印相机拍照时间地点app简介: 记录宝宝出生天数,工程管理、外出考勤、综合执法都在用!…

rust大油田分解机_辽河油田曙光采油厂:智慧党建建强战斗堡垒

辽河油田曙光采油厂作业二大队208队现有员工19人&#xff0c;其中党员7人。近年来&#xff0c;208队党支部在不断夯实党支部规范化建设的同时&#xff0c;立足服务原油上产主战场&#xff0c;把点子打在强化自身能力建设上&#xff0c;不仅做到了每名党员都是一面旗帜&#xff…

教你用手机代替各类门禁卡

更多渗透技能 公众号&#xff1a;白帽子左一本文研究将门禁卡、考勤卡、会员卡、停车卡、电梯卡等等各种卡片模拟进NFC手机里&#xff0c;从而用手机代替门禁卡。禁止用于非法用途。 转自原文地址&#xff1a;https://www.freebuf.com/geek/275606.html 一、软硬件准备 NFC…