[发明专利]Excel数据自适应写入方法、装置、Java应用服务器及存储介质在审
| 申请号: | 202010366767.1 | 申请日: | 2020-04-30 |
| 公开(公告)号: | CN111638950A | 公开(公告)日: | 2020-09-08 |
| 发明(设计)人: | 郑如刚 | 申请(专利权)人: | 深圳壹账通智能科技有限公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50;H04L29/08 |
| 代理公司: | 深圳市赛恩倍吉知识产权代理有限公司 44334 | 代理人: | 刘丽华;孙芬 |
| 地址: | 518052 广东省深圳市*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | excel 数据 自适应 写入 方法 装置 java 应用 服务器 存储 介质 | ||
本发明涉及人工智能技术领域,提供一种Excel数据自适应写入方法、装置、Java应用服务器及存储介质,所述Excel数据自适应写入方法包括:接收多个Excel数据写入请求;获取Java应用服务器的可用内存;根据可用内存分配内存块并在内存块中创建线程池;调用线程池中的多个线程从多个Excel数据中逐步加载多个目标Excel数据,并在停止加载后对多个线程进行锁保护;将加载的多个目标Excel数据写入预设数据库中;在多个目标Excel数据写入完成后释放锁保护及内存块中的数据占用的内存,并重新调用多个线程从多个Excel数据中逐步加载多个目标Excel数据。此外,本发明还涉及区块链技术,相关数据可存储于区块链节点中。本发明通过双重机制保障了写入Excel数据时不会导致内存溢出。
技术领域
本发明涉及人工智能技术领域,具体涉及一种Excel数据自适应写入方法、装置、Java应用服务器及存储介质。
背景技术
目前,将Excel数据写入数据库中,是通过apache的POI技术进行解析,但是POI技术在解析Excel数据时是通过将Excel内容全部读到内存中,再将内存中的数据写入数据库,导致内存消耗非常严重。如果同时读取数据的操作行为,很容易导致内存溢出。JAVA应用服务器一旦发生内存溢出,将会对JAVA应用服务器系统的运行性能造成重大影响,且内存溢出又难以诊断。
因此,有必要提供一种Excel数据自适应写入方法,以解决现有技术中将Excel数据写入数据库时易导致内存溢出的技术问题。
发明内容
鉴于以上内容,有必要提出一种Excel数据自适应写入方法、装置、Java应用服务器及存储介质,通过Java应用服务器的可用内存限定线程池的大小,及通过Java的反射机制确保请求加载的Excel数据不超过内存块的告警阈值,双重机制保障了写入Excel数据时不会导致内存溢出。
本发明的第一方面提供一种Excel数据自适应写入方法,应用于Java应用服务器中,所述Excel数据自适应写入方法包括:
接收多个Excel数据写入请求;
响应于所述多个Excel数据写入请求,获取所述Java应用服务器的可用内存;
根据所述可用内存分配内存块并在所述内存块中创建线程池;
调用所述线程池中的多个线程从所述多个Excel数据中逐步加载多个目标Excel数据,并在停止加载后对所述多个线程进行锁保护;
将加载的多个目标Excel数据写入预设数据库中;
在所述多个目标Excel数据写入完成后释放所述锁保护及所述内存块中的数据占用的内存,并重新调用所述线程池中的多个线程从所述多个Excel数据中逐步加载多个目标Excel数据。
根据本发明的一个可选实施例,在所述接收多个Excel数据写入请求之后,所述Excel数据自适应写入方法还包括:
逐条读取所述多个Excel数据;
将读取到的Excel数据依次写入Map类型数组中;
将所述Map类型数组中的数据依次添加至Excel数据队列中。
根据本发明的一个可选实施例,所述调用所述线程池中的多个线程从所述多个Excel数据中逐步加载多个目标Excel数据包括:
每隔预设时间发送一个数据加载请求至所述Excel数据队列,请求获取所述Excel数据队列中的一个Excel数据;
通过Java的反射机制获取请求加载的Excel数据的大小;
判断所有请求加载的Excel数据的大小是否超过所述内存块的告警阈值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳壹账通智能科技有限公司,未经深圳壹账通智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010366767.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





