1. 前言
一般情况下,我们如果需要某个表,比如错误日志表,当这个表中的数量超过一定的阈值,系统自动会给我们发送一个警报,提醒我们要做一些处理。我们需要利用定时器(Schedule)来完成来实现这个功能。
2. 功能介绍
当警报关闭的时候,我们通过点击“开启警报”来启动后端的警报监控。后端每10秒(定时器时间)来访问一下student表,
若这个表中的数量超过了50(阈值),就会发邮件给2605121231@qq.com.
当经过启动的时候,操作按钮变成:关闭警报,重启警报。
3. 新建警报表
我们需要将警报信息持久化,这样才能每次打开页面的时候得到正确的警报设置信息。
4. StuApplication.java
加入
很重要!很重要!很重要!
5. xml
在mapper.xml文件中,我们主要实现三个方法,alarmSel,alarmUpdateThreshold,alarmUpdate。
pojo,dao,service 大同小异。
6. AlarmController
可以看出,在这个controller类前面,定义了一堆参数,有阈值,定时器的间隔时间,还有一个定时器的方法。
启动警报方法中,通过使用定时器
future = threadPoolTaskScheduler.schedule(new MyRunable(),new CronTrigger(DEFAULT_CRON));
来执行MyRunable这个方法,并且设置了定时器时间为:DEFAULT_CRON ;
MyRunable继承了Runnable这个方法,开启了重写了run方法。
7. 停止警报和重启警报
停止警报和重启警报,也是建立在定时器的基础上。
通过取消定时器future,从而停止警报。重启警报实现原理是先停止再重启,使更改的警报信息生效。
8. 前端代码
代码代码没有什么值得注意的地方,就不写了。