问题描述
我遇到的问题是:我在页面上有个timer,没2000ms调用一次相关的java方法,从这个java方法中判断一个值,如果满足条件就触发报警,但是这样就带来一个问题:每2000ms就会报警一次,这样就重复报警n次了,怎么才能让他有再值满足条件的时候报警一次,比如说,现在数据库中有一条记录满足条件,报警一次,下次又增加了一条满足条件的记录,然后再报警一次,以此类推,这个该怎么用java线程去解决,表示java线程接触的比较少,请各位大神指教!
解决方案
思路应该分开: 一个是产生警报数据, 一个是遇到警报数据发出警报。页面上有timer之后, 只需要java代码中做判读就可以了, 给警报数据设置一个状态,如:新插入的为0 已经报警过的为1, 每次加载为0的数据, 如果不为空就报警并都改为1就行了呗这跟线程不搭嘎
解决方案二:
1.用里面放一个map,或者set,把报过警的记录id放入,每次查询出符合条件的记录后,看map中是否还有该id,如果有,不报警,没有则报警并放入map2.在库中新建一张表存放报警过的记录,查询的时候用左关联查询未报警的记录,报警成功后往新建的那张表中插入数据。
解决方案三:
[size=x-large]用spring quartz 可以解决,学习下吧 !~[/size]
时间: 2024-09-20 20:43:04