提交 8046675d 编写于 作者: Z zhourui

修复日志不会自动清除

上级 05103dc1
......@@ -22,39 +22,55 @@ public class LogQueue extends AbstractQueue<NameValuePair> {
protected void execute(NameValuePair pair) {
try {
if (StringUtils.equals(pair.getName(), PromptErrorLog.class.getName())) {
PromptErrorLog o = pair.getValue(PromptErrorLog.class);
if (null != o) {
this.concrete(PromptErrorLog.class, o);
} else {
this.clean(PromptErrorLog.class);
}
doAsPromptErrorLog(pair);
} else if (StringUtils.equals(pair.getName(), UnexpectedErrorLog.class.getName())) {
UnexpectedErrorLog o = pair.getValue(UnexpectedErrorLog.class);
if (null != o) {
this.concrete(UnexpectedErrorLog.class, o);
} else {
this.clean(UnexpectedErrorLog.class);
}
doAsUnexpectedErrorLog(pair);
} else if (StringUtils.equals(pair.getName(), WarnLog.class.getName())) {
WarnLog o = pair.getValue(WarnLog.class);
if (null != o) {
this.concrete(WarnLog.class, o);
} else {
this.clean(WarnLog.class);
}
doAsWarnLog(pair);
} else if (StringUtils.equals(pair.getName(), ScheduleLog.class.getName())) {
ScheduleLog o = pair.getValue(ScheduleLog.class);
if (null != o) {
this.concrete(ScheduleLog.class, o);
} else {
this.clean(ScheduleLog.class);
}
doAsScheduleLog(pair);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void doAsScheduleLog(NameValuePair pair) throws Exception {
ScheduleLog o = pair.getValue(ScheduleLog.class);
if (null != o) {
this.concrete(ScheduleLog.class, o);
} else {
this.clean(ScheduleLog.class);
}
}
private void doAsWarnLog(NameValuePair pair) throws Exception {
WarnLog o = pair.getValue(WarnLog.class);
if (null != o) {
this.concrete(WarnLog.class, o);
} else {
this.clean(WarnLog.class);
}
}
private void doAsUnexpectedErrorLog(NameValuePair pair) throws Exception {
UnexpectedErrorLog o = pair.getValue(UnexpectedErrorLog.class);
if (null != o) {
this.concrete(UnexpectedErrorLog.class, o);
} else {
this.clean(UnexpectedErrorLog.class);
}
}
private void doAsPromptErrorLog(NameValuePair pair) throws Exception {
PromptErrorLog o = pair.getValue(PromptErrorLog.class);
if (null != o) {
this.concrete(PromptErrorLog.class, o);
} else {
this.clean(PromptErrorLog.class);
}
}
private <T extends JpaObject> void concrete(Class<T> cls, T o) throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
T t = emc.find(o.getId(), cls);
......
package com.x.program.center.schedule;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.quartz.JobExecutionContext;
......@@ -20,27 +21,29 @@ public class Cleanup extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(Cleanup.class);
private List<Class<? extends JpaObject>> list = new ArrayList<>();
private static List<Class<? extends JpaObject>> list = Arrays.asList(ScheduleLog.class, PromptErrorLog.class,
UnexpectedErrorLog.class, WarnLog.class);
private volatile int tag = 0;
private static volatile int tag = 0;
public Cleanup() {
list.add(ScheduleLog.class);
list.add(PromptErrorLog.class);
list.add(UnexpectedErrorLog.class);
list.add(WarnLog.class);
// nothing
}
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
try {
if (pirmaryCenter()) {
ThisApplication.logQueue.send(new NameValuePair(list.get(tag).getName(), null));
tag = (tag + 1) % list.size();
send();
}
} catch (Exception e) {
logger.error(e);
throw new JobExecutionException(e);
}
}
private static void send() throws Exception {
ThisApplication.logQueue.send(new NameValuePair(list.get(tag).getName(), null));
tag = (tag + 1) % list.size();
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册