工作笔记——定时告警系统设计思路

需求:

在一个平台上有着多家企业,企业的边缘应用每个时刻都可能生成异常告警消息,一旦有告警消息,系统应发送给订阅该消息的指定用户,用户可选择订阅每隔多少分钟接收告警消息。

注:每个企业可以添加任意多个用户,用户根据手机号进行区别,用户可以通过微信公众号的H5应用将手机号和微信openid绑定。消息类型包括微信模板消息告警和短信告警。

 

难点:

每个用户都可以设置告警消息接收间隔,如何实现对每个订阅用户的精准推送?

 

整体流程:

1、定时任务每隔1分钟执行一次;

2、查询当前分钟的异常记录,并根据公司id进行分组companyAry;

3、遍历companyAry;

4、获取每个公司的所有订阅用户;

5、根据用户的订阅间隔X判断当前是否需要对该用户发送告警消息,如果是,则添加该用户到消息接收者数组中;

6、根据消息接收者数组发送告警消息;

设计思路:

1、首先要确定时间刻度的选择,有两种实现方式:

a.以系统时间为刻度,每天的零点零分为第0分钟,然后根据当前时分计算出当前是1天的第Y分钟,然后遍历用户的订阅间隔X,拿Y对X取余,余数为零,则对该用户发送消息;

b.以系统启动时刻为零刻度T,每个一分钟,T+1,然后每次拿T读X取余,余数为零,则发送消息。此方法的需要格外注意的是:T+1在哪里执行,又存储在哪里,可以单独开一个定时任务执行此操作,该参数可以存储在缓存中。

 

思考?

当前设计瓶颈在哪?海量用户如何实现?

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值