上一篇写完了用注解实现异步导入,这一篇实现用注解异步导出。
1.背景:
导出最容易遇到的问题就是超时了,随着我们DB数据越来越多,导出时特别容易超时,这时候通常的解决办法就是优化SQL,或者直接限制导出条数,但是这两种方法都只能解决暂时的问题,过一段时间可能就又会冒出来。所以还是使用异步导出,先存到nas中,然后让用户再去下载。
2. 流程设计:
2.1 生成一条导出记录
2.2 异步查询并写入execl
2.3 把execl上传到nfsc,并更新导出记录
2.4 下载,从nfsc下载文件
3. 代码实现:
从上面的流程中可以看出,系统中只有第二步的不同的,其余都是一样的,所有我们还是可以用注解来实现通过流程。
3.1 创建自定义注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Export {