数据抽取模型
1.增加定时器,如1分钟执行一次,增加数据抽取临时表,记录最后一次抽取时间;
也可以夜间进行批量补抽,保证抽取的完整性;
RestClientInvoke invoke=null;
Long systemTime = baseNaiveQuery.getSystemTime();
Long sjcqTime = sjcqLogRepository.getSjcByType("1");
if (sjcqTime == null) {
sjcqTime = systemTime;
}
Long sjcqEndTime = sjcqTime - 3*60*1000; // 抽之前3分钟的数据
if (time != null) {
sjcqTime = time;
sjcqEndTime = time - 24*60*60*1000;
}
// 更新时间戳
if (sjcqTime > systemTime) {
sjcqLogRepository.updateSjc("1",systemTime);
} else {
sjcqLogRepository.updateSjc("1",sjcqTime + 60*1000); // 增加1分钟
}
}catch (Exception ex){
// 更新时间戳
if (sjcqTime > systemTime) {
sjcqLogRepository.updateSjc("1",systemTime);
} else {
sjcqLogRepository.updateSjc("1",sjcqTime + 60*1000); // 增加1分钟
}
}finally {
if (invoke!=null){
invoke.close();
}
}