【Excel_To_DB】SpringBoot+EasyPoi+Redis消息队列实现Excel批量异步导入数据库(一)

【Excel_To_DB】SpringBoot+EasyPoi+Redis消息队列实现Excel批量异步导入数据库(一)
【Excel_To_DB】SpringBoot+EasyPoi+Redis消息队列实现Excel批量异步导入数据库(二)
【Excel_To_DB】SpringBoot+EasyPoi+Redis消息队列实现Excel批量异步导入数据库(三)
【效果演示】:JavaWeb毕业设计项目-足球队管理系统(四)引入Excel_To_DB项目+源码
【码云地址】:https://gitee.com/ydc_coding

前言:

这是一款将Excel表格中的数据导入至数据库中的小工具,为什么会突然想做这个呢?
这是源于两次抱怨,第一次抱怨是发生在公司开发的人事系统正式在审计局上线前的培训会上,甲方使用人员提出:为什么没有批量导入数据的功能,在这之前,他们已经在使用另外一款其他公司开发的功能类似的系统,需要将那边系统的数据同步至这个新的系统上,如果只能依次手动输入的话,他们工作量反而增大了….
第二次是来自审计局服务办运维同事的抱怨:新上线人事系统中的个人基础数据需要进行更正校验,将之前试运行阶段中添加进去的数据与人事处最新发布的个人信息相匹配,将有变化的数据进行更正或删除新增…这已经是第二次校验了,上一次足足花了2天的时间才完整的手动校验完成…

分析:
依照上诉同事的需求(甲方的需求呢?嗯?甲方的需求?甲方刚刚又提什么需求了???),个人感觉可以往以下几个方面去考虑:

  • 因为需要同步的数据是变化的,全国这么多服务办,每个地区数据库里的字段又不太相同,所以不能实体类的字段名称“写死”,并且在对应mapper中用注解的形式绑定sql语句,方便后期运维同事自行维护。
  • 从过程上来分析,我们需要对传入的数据进行至少两层操作,例如首先对传入的数据进行格式校验,再将数据插入数据库后返回的结果进行判
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Redis消息队列是指利用Redis实现的一种基于发布/订阅模式的消息传递机制。它可以实现异步处理任务,提高系统性能并且可以扩展到分布式系统中。下面进行详细讲解。 ## 一、Redis消息队列的原理 Redis消息队列实现原理是利用Redis的发布/订阅机制,通过将消息发送者称为“发布者”,将消息接收者称为“订阅者”,实现消息的传递和处理。 在Redis消息队列中,发布者将消息发布到一个频道中,订阅者从该频道中获取消息,完成相应的处理。具体流程如下: 1. 发布者将消息发布到指定频道中。 2. 订阅者向Redis服务器订阅指定频道的消息。 3. Redis服务器将频道中的消息推送给所有订阅该频道的订阅者。 4. 订阅者接收到消息后,执行相应的操作。 ## 二、Redis消息队列的应用 1. 异步任务处理 当需要执行耗时的任务时,可以使用Redis消息队列实现异步处理,将任务放入队列中,由消费者进行处理,从而避免阻塞主线程,提高系统性能。 2. 实时消息推送 当需要向多个客户端实时推送消息时,可以使用Redis消息队列实现,将消息发布到指定频道中,订阅该频道的客户端即可接收到消息。 3. 日志处理 当需要将日志记录到文件或者数据库中时,可以使用Redis消息队列实现,将日志信息放入队列中,由消费者进行处理,从而提高系统性能。 ## 三、Redis消息队列的代码实现 Python代码实现Redis消息队列: ```python import redis class RedisQueue(object): def __init__(self, queue_name, redis_host='localhost', redis_port=6379): """ 初始化Redis连接 """ self.redis_conn = redis.StrictRedis(host=redis_host, port=redis_port, db=0) self.queue_name = queue_name def put(self, data): """ 将数据放入队列 """ self.redis_conn.rpush(self.queue_name, data) def get(self, block=True, timeout=None): """ 从队列中获取数据 """ if block: data = self.redis_conn.blpop(self.queue_name, timeout=timeout) else: data = self.redis_conn.lpop(self.queue_name) if data: return data.decode('utf-8') else: return None ``` 其中,put方法将数据放入队列,get方法从队列中获取数据。 使用示例: ```python queue = RedisQueue('test_queue') queue.put('hello world') data = queue.get() print(data) ``` 以上就是Redis消息队列的详细讲解和代码实现

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值