1、如何保证执行脚本不重复
每个脚本都带有一个key.在执行脚本的时候,key都会维护到一个聊表中,在执行前,先确定列表中是否有这个key,对key的数量也有限制,防止太多语句执行
2、如何保证数据的同步
每天都会去查询业务库中的id,和绩效库匹配,如果没有这个id,就认为这条数据已删,每天都会采集两天的数据(因为有些表只到日期,没有小时),脚本设置业务主键,用于同步’
3、登录有效期是8小时,使用session和kokke实现自动登录
4、如何执行sql语句
为了提高处理脚本的灵活性,使用了java.sql进行连接,
5、增量采集的实现
采集两天前的数据,使用数据的业务主键去删除绩效库的数据,再重新采集这个时间段的数据
6、全量采集
删除库中的所有数据,然后重新采集
7、加载绩效表的时候很慢
因为这个表的多个字段都关联了其他表,所以查询比较慢;使用延迟加载的方式,每次查询,只获取需要的数据
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "pid")
private TOrganization org;
在使用的时候,
每个医院,一天都会产生上万条数据,有三十多家医院,需要使用线程池,进行多线程的数据采集工作