0x01:同步导出
这个方案最简单,就只需一个导出接口。这个接口只需实现根据用户条件到数据库查询相关数据,然后在应用程序中生成Execl电子表格,最后通过Response把生成的Execl电子表格回写到客户端即可
该方案简单,因为是同步导出,所以不适用大量数据导出。如果使用该方案进行大量数据导出的话,存在客户端(浏览器)超时的情况,导致导出失败;因为浏览器与Nginx之间有超时设置。
0x02:异步导出
异步导出一般需要设计三个接口。
-
第一个接口:开启一个线程对进行数据查询,并对查询到的数据进行Execl电子表格读写操作,同步返回导出状态标识;
-
第二个接口:查询第一个接口的完成状态,如果完成Execl电子表格操作,则返回true;否则返回false;
-
第三个接口:根据第二个接口返回的状态,如果返回true,就调用下载Execl电子表格;