工作中遇到的问题
2017-10-11 本文已影响0人
白马王朗
1.报表导出过慢的问题:
在一次报表导出数据的过程中,随着业务量的增加,导出一个报表的时间过长,达到了2至3s钟,业务已经开始烦躁,并且狂点导出按钮,导致服务器出现了一些问题。通过对导出数据分析,发现分为五块互相没有依赖的数据,可以采用多线程导出。问题在于使用runnable接口是无法控制多个线程数据是否都已就绪。这里用到callable接口,可以有运行结果的返回值(同时也可以抛出异常)。于是改写成使用FutureTask来实现多线程报表的导出,将以前的2至3S的导出时间缩小到0.5s左右。
2.跨系统数据迁移的问题:
在做数据迁移的时候,发现配置的事务总是不会滚。原因在于连接了两个数据源,而我配置的事务管理器是老库的数据库管理器,新库的操作没有能够回滚;通过对数据迁移过程分析,我这里的插入操作都是在新库数据源上操作的,而只有一个步骤在老库中操作,这里我将新数据库的事务管理器配置到当前service中,保证了数据迁移的完整性;后来得知这是一个分布式事务的问题,以后再来做更好的优化;