日常的系统中,报警是不可缺少的一环,目前报警方式很多,最常见的有直接打日志,微信报警,短信报警,邮件报警等;而涉及到报警,一般不可避免的需要提前设置一些基本信息,如报警方式,报警频率,报警用户,开关等;
另外一个常见的问题是一般采用的是单一的报警方式,比如不管什么类型的报警全部都用短信方式触达,然后就会发现手机时常处于被淹没的状态了,久而久之对报警短信就不会敏感了
因此我们准备设计一个通用的报警框架
整体来说,报警主要可以划分为三个步骤,如下:
从任务划分上来看,比较清晰简单,但是每一块的内容又必须可以拓展,
ConfLoader
ConfChangeTrigger
ConfParse
: 解析文本格式报警规则为业务对象AlarmSelector
:根据报警规则和报警类型,选择具体报警执行器 AlarmExecute
根据上面的拆解,在应用启动的时候,就有一些事情必须去做了
下图显示在应用启动时,报警规则解析的相关步骤
至于报警执行器的加载就比较简单了,如下图
因此,整个的工作流程如下图
通过前面的任务设计之后,对需要做的东西有了一个大概的脉络了,因此在正式操刀实现之前,下对整个架构进行任务拆解,看下可以具体的执行步骤可以怎么来
AlarmExecute
所以,通过上面的分析可以看出,这个系统的结构还是蛮简单的,整个只需要四个部分就可以搞定,其中最主要的就是前面两个了,后面将分别说明
做一个东西,当然是希望可以带来一些用处,或者能学习到什么东西,才不枉花费精力来折腾一下,那么我们这个报警系统,究竟有什么用,或者可以从中学习到什么东西呢?
用途:
学习:
抛开特有的知识点,可以抽象一些公共可用的地方,大概就下面这两点了