问题描述
由于进入生产环境,开发和部署人员不一致,下载的db文件放置到/data文件下,居然没有生效更新替换最新,
上述问题不常见,但是出现问题难排查。检查文件下面,会发现db文件项目已经越来越多了。
逻辑:同步获取db文件进行解析存放到缓存中,如果获取文件是旧的就没有生效了
考虑项目部署多样,运维任务备份方式不同,
防止下面错误的操作备份,导致数据缓存不是最新数据,引起排查不必要的问题,做了一个优化兼容

推荐方式
以前已上线的版本,需要注意此种备份方式

解决处理
下载db文件放置指定文件夹路径后,读取文件根据时间进行降序解析存入缓存,后续重复的则不覆盖。
特别说明:依据文件最新时间排序解析
/**
* 根据文件日期进行排序
*
* @param fliePath
* @return
*/
public static File[] orderByDate(String fliePath) {
File file = new File(fliePath);
if (!file.exists()) {
//如果目录不存在则自动创建
file.mkdirs();
}
File[] fs = file.listFiles();
Arrays.sort(fs, new Comparator<File>() {
@Override
public int compare(File f1, File f2) {
long diff = f2.lastModified() - f1.lastModified();
if (diff > 0) {
return 1;
} else if (diff == 0) {
return 0;
} else {
return -1;
}
}
@Override
public boolean equals(Object obj) {
return true;
}
});
return fs;
}
607

被折叠的 条评论
为什么被折叠?



