excel 批处理框架

  • github
  • 框架开源由我1人开发维护,欢迎感兴趣的同道交流或提交 PR
  • 框架已支撑京东司南平台线上批处理模块的日常运行,日均导入、导出数据量在百万级别

企业级项目里,excel的导入导出需求是十分常见的
一般做法都会基于 POI 或者阿里的 EasyExcel 处理
数据量较大时,通常会遇到以下问题:

  • 任务跑死没有结果,只能通过线上日志排查
  • 同步阻塞或单线程处理IO密集型任务,速度较慢
  • 导入导出的字段经常需要增减,逻辑经常变化,需要修改代码

框架概述

  • 框架多线程、少阻塞地处理导入导出任务,性能较高
  • 适用于导入十分频繁且数据量较大场景(几十万至百万)
  • 导入导出基于模板字段级完全配置化,支持自定义校验和写入逻辑
  • 导出支持同时从 mapper sql 和已有业务方法两种方式抽取数据

快速开始

  1. 引入依赖

以spring boot starter的形式引入应用

  • gradle
1
implementation 'com.jd.mycx26:mybatch-spring-boot-starter:version'
  • maven
1
2
3
4
5
<dependency>
<groupId>com.jd.mycx26</groupId>
<artifactId>mybatch-spring-boot-starter</artifactId>
<version>version</version>
</dependency>
  1. 至少实例化一个默认的 javax.sql.Datasource
    框架内部用到数据库,实现无所谓,HikariDataSource,DruidDataSource等
    推荐 Hikari,如其名的光速,性能上较 Druid 更强,目前最为优秀的数据库连接池

  2. 必须实现 com.mycx26.base.service.file.CloudFileService 接口为单例供框架启动注入
    框架很多场景涉及文件处理
    比如导入校验错误的 excel 需要上传到云存储保存供用户下载查看等
    实现无所谓,比如京东的JFS,腾讯的CFS等


例子

todo


mybatch 框架
https://mywill26.github.io/2022/07/10/mybatch/
Author
mycx26
Posted on
July 10, 2022
Licensed under