进度条(vue + redis + springboot)
工作需要需要同步mysql数据库中的流程任务信息到mongodb,当流程较多时,同步时间会比较长,所以需要一个进度条,来知晓同步的进度。使用到的技术springboot, springboot的异步注解,vue-element的Progress进度条,redis实现步骤1 页面触发数据同步2 后台进行数据同步处理查询出当前时间戳(暂记为SJC),查询出需要同步的数据的总数量,以SJC_...
·
工作需要需要同步mysql数据库中的流程任务信息到mongodb,当流程较多时,同步时间会比较长,所以需要一个进度条,来知晓同步的进度。
使用到的技术
springboot, springboot的异步注解,vue-element的Progress进度条,redis
实现步骤
1 页面触发数据同步
2 后台进行数据同步处理
查询出当前时间戳(暂记为SJC
),查询出需要同步的数据的总数量,以SJC_count
作为key(并发概率极低,所以时间戳就能满足我的需求),总数量作为值,存入到redis中,然后开始进行同步数据的操作(异步方法),每完成一批数据的同步,将这批数据的数量增加到key为SJC
的redis对应的值中(这个地方需要先获取SJC
对应的值,然后在此基础上增加,所以需要加synchronized
以防出现问题)
注:需要开启springboot的异步支持
参考代码:
页面收到响应后进行处理
页面收到总数量和时间戳,然后每隔1秒(时间间隔根据业务需要来定)去后台查询执行进度(后台从redis中查SJC_count
对应的值作为总数量,查SJC
对应的值作为当前数量,然后求出进度返回给页面),当进度为100%时,终止定时任务。
参考代码:
更多推荐
已为社区贡献3条内容
所有评论(0)