UpdateCacheInterceptor.java
1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.jflyfox.component.interceptor;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jflyfox.modules.admin.comment.CommentService;
import com.jflyfox.modules.admin.folder.FolderService;
import com.jflyfox.modules.front.service.FrontCacheService;
import com.jflyfox.modules.front.service.FrontImageService;
import com.jflyfox.modules.front.service.FrontVideoService;
import com.jflyfox.util.Config;
/**
* 缓存更新拦截器
*
* @author flyfox 2015-9-21
*/
public class UpdateCacheInterceptor implements Interceptor {
/**
* 缓存更新时间
*/
public static final long UPDATE_TIME = Config.getToLong("CMS.UPDATE_TIME");
public static long lastUpdateTime = System.currentTimeMillis();
public void intercept(Invocation ai) {
// 如果想让体验更好,可以调用一遍所有缓存方法(比较麻烦)
long now = System.currentTimeMillis();
if (UPDATE_TIME > 0 && now - lastUpdateTime > UPDATE_TIME) {
// 更新目录缓存
new FolderService().updateCache();
// 清除回复数缓存
new CommentService().clearCache();
// 清除所有前台缓存
new FrontCacheService().clearCache();
// 清除前台图片缓存
new FrontImageService().clearCache();
// 清除前台视频缓存
new FrontVideoService().clearCache();
lastUpdateTime = now;
}
ai.invoke();
}
}