SpringAOP实现Excel异步上传功能
页面上传Excel,后端接口解析Excel获取数据,校验数据然后落库。如果Excel的行非常多或者解析非常复杂,那么解析+校验的过程就非常耗时。如何设计?启动一个子线程去做解析工作,主线程正常返回,由子线程记录上传状态+校验结果到数据库。同时提供一个查询页面用于实时查询上传的状态和校验信息。先定义一个日志实体类:
public class FileUploadLog {
private Integer id;
// 唯一编码
private String batchNo;
// 上传到文件服务器的文件key
private String key;
// 错误日志文件名
private String fileName;
//上传状态
private Integer status;
//上传人
private String createName;
//上传类型
private String uploadType;
//结束时间
private Date endTime;
// 开始时间
private Date startTime;
}
定义一个上传类型枚举,记录是哪里操作的。
public enum UploadType {
未知(1,"未知"