背景
两个系统做集成,由于资源有限,需要查询每天的生产数据做报表分析。由于基础数据有其他用途且算法保密的情况下,没办法在数据方系统做完数据分析直接拿报表结果。所以必须要把基础数据拿到后在报表方系统中计算。每小时取一次。数据大概在10W笔。
现有功能
分页获取。参数必须传页码。比如每页取5000笔,那么10万笔得取20次。
中间由于网络超时等各种原因,中断则当前页停止获取,接着取下一页或者重新取当页。判断获取到的数据量小于5000笔,那就说明此次数据已取完。
瓶颈
网络中断或者出错等各种原因,接着取下一页。那么缺少的那一页无法准确定位缺哪些数据。如果中断继续取当前页数据。那么中断时间周期直接会影响后边的数据获取。
优化思路
数据需求方分页获取数据变为被动接收数据。如:发一次请求到数据提供方。数据提供方查询数据总量,计算出合适的线程数量分批推送至数据需求方。
优点
利用线程使数据总体集成时间缩短,同时数据提供方可准确定位到失败的数据范围。
实例源码请下载
实例源码