|
@@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
|
7
|
7
|
|
8
|
8
|
import java.util.Calendar;
|
9
|
9
|
import java.util.Date;
|
|
10
|
+import java.util.List;
|
10
|
11
|
import java.util.Map;
|
11
|
12
|
import java.util.concurrent.TimeUnit;
|
12
|
13
|
|
|
@@ -32,11 +33,15 @@ public class JobLogReportHelper {
|
32
|
33
|
@Override
|
33
|
34
|
public void run() {
|
34
|
35
|
|
35
|
|
- // monitor
|
|
36
|
+ // last clean log time
|
|
37
|
+ long lastCleanLogTime = 0;
|
|
38
|
+
|
|
39
|
+
|
36
|
40
|
while (!toStop) {
|
|
41
|
+
|
|
42
|
+ // 1、log-report refresh: refresh log report in 3 days
|
37
|
43
|
try {
|
38
|
44
|
|
39
|
|
- // refresh log report in 3 days
|
40
|
45
|
for (int i = 0; i < 3; i++) {
|
41
|
46
|
|
42
|
47
|
// today
|
|
@@ -88,6 +93,32 @@ public class JobLogReportHelper {
|
88
|
93
|
}
|
89
|
94
|
}
|
90
|
95
|
|
|
96
|
+ // 2、log-clean: switch open & once each day
|
|
97
|
+ if (XxlJobAdminConfig.getAdminConfig().getLogretentiondays()>0
|
|
98
|
+ && System.currentTimeMillis() - lastCleanLogTime > 24*60*60*1000) {
|
|
99
|
+
|
|
100
|
+ // expire-time
|
|
101
|
+ Calendar expiredDay = Calendar.getInstance();
|
|
102
|
+ expiredDay.add(Calendar.DAY_OF_MONTH, -1 * XxlJobAdminConfig.getAdminConfig().getLogretentiondays());
|
|
103
|
+ expiredDay.set(Calendar.HOUR_OF_DAY, 0);
|
|
104
|
+ expiredDay.set(Calendar.MINUTE, 0);
|
|
105
|
+ expiredDay.set(Calendar.SECOND, 0);
|
|
106
|
+ expiredDay.set(Calendar.MILLISECOND, 0);
|
|
107
|
+ Date clearBeforeTime = expiredDay.getTime();
|
|
108
|
+
|
|
109
|
+ // clean expired log
|
|
110
|
+ List<Long> logIds = null;
|
|
111
|
+ do {
|
|
112
|
+ logIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findClearLogIds(0, 0, clearBeforeTime, 0, 1000);
|
|
113
|
+ if (logIds!=null && logIds.size()>0) {
|
|
114
|
+ XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().clearLog(logIds);
|
|
115
|
+ }
|
|
116
|
+ } while (logIds!=null && logIds.size()>0);
|
|
117
|
+
|
|
118
|
+ // update clean time
|
|
119
|
+ lastCleanLogTime = System.currentTimeMillis();
|
|
120
|
+ }
|
|
121
|
+
|
91
|
122
|
try {
|
92
|
123
|
TimeUnit.MINUTES.sleep(1);
|
93
|
124
|
} catch (Exception e) {
|