项目中应用到部分代码
//声明本地缓存
private static final Cache<String, List<String>> textContentCache =
CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.MINUTES).build();
//TODO 现在使用本地缓存,之后改为,如果是文本文件,可以压缩后再缓存到redis;然后拿到后解压缩(这个过程可以封装为一个方法/服务,这样可以推广使用)
@Override
public List getShareUrlContent(final String md5) {
List<String> textContentList = null;
try {
textContentList = textContentCache.get(md5, new Callable<List<String>>() {
@Override
public List<String> call() throws Exception {
//缓存不存在,根据md5查询服务器地址,读取服务器文本内容
final String judgeFileUrl = getFileUrl(md5);
if (StringUtils.isBlank(judgeFileUrl)) {
return null;
} else {
final String url = com.mpen.microservice.util.FileUtils.root + judgeFileUrl;
final List<String> listContent = FileUtils.readLines(new File(url