Redis消息队列在后台数据导入、统计中的应用

繁琐的等待

虽然后台管理功能是给客户使用,而且客户也从来没有向我们反映过这块的问题,但是作为一名软件工程师,是有信仰的,不仅是为了软件的功能完整性,还为了更高质量的用户体验。然而这些都是虚的,真正的原因是我们每个人都兼职测试,每次都要在导入数据后进行长时间无聊地等待结果返回。

功能由以下几点组成:

  • 用户在后台上传.xml文件
  • 程序解析.xml文件
  • 将解析后的数据插入数据库表
  • 根据业务合并新旧数据
  • 统计数据

这样繁琐的步骤都在结果之间完成,漫长而无聊的等待正逐渐地榨干我对开发的激情。为了能给自己的信仰一个交代,我决定重构!声明:重构是不算工时和加班的,充其量能利用公司的场地、网络和电灯。

  

Redis 消息队列

鉴于项目中已经使用了 Redis 缓存,为了维护简单,不引入新技术,我采用了 Redis 发布订阅者模式实现消息队列。不涉及分布式,也不涉及优先级,按顺序将消息压入 List,这些消息被不同的服务异步取出并执行相应的处理。

在用户上传.xml文件后,前台页面便返回类似“上传成功”的状态,同时,后台程序将其他处理封装成消息顺序插入List中,直至所有的消息都被异步取走并处理完成。

相比开始的“一条龙服务”,消息队列的应用使得各个任务可以异步完成,节省了时间,改善了用户体验。

标签:Redis 发布于:2019-11-14 05:35:05