diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/LogQueue.java b/o2server/x_program_center/src/main/java/com/x/program/center/LogQueue.java index 1a06a6b8e7bd042153416682d1f681c661a25924..e3aa6f8718f578b9f27daa2245ca0e6c69269f52 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/LogQueue.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/LogQueue.java @@ -68,7 +68,7 @@ public class LogQueue extends AbstractQueue { do { try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { Calendar threshold = Calendar.getInstance(); - threshold.add(Calendar.DATE, -5); + threshold.add(Calendar.DATE, -7); ids = emc.idsLessThanMax(cls, JpaObject.createTime_FIELDNAME, threshold.getTime(), 500); if (!ids.isEmpty()) { emc.beginTransaction(cls); diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectLog.java b/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectLog.java index ff82cbbfdb5e9aaf0f7d737a781bf03e4c9bfcea..161f2b917110c55362053b16231f86d6d3532910 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectLog.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectLog.java @@ -16,6 +16,7 @@ import org.quartz.JobExecutionException; import com.x.base.core.container.EntityManagerContainer; import com.x.base.core.container.factory.EntityManagerContainerFactory; +import com.x.base.core.entity.JpaObject_; import com.x.base.core.project.config.Config; import com.x.base.core.project.connection.ActionResponse; import com.x.base.core.project.connection.ConnectionAction; @@ -38,58 +39,16 @@ public class CollectLog extends BaseAction { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { try { - if (pirmaryCenter()) { + if (pirmaryCenter() && BooleanUtils.isTrue(Config.collect().getEnable())) { try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { - if (BooleanUtils.isTrue(Config.collect().getEnable())) { - Business business = new Business(emc); - if (business.validateCollect()) { - List os_promptErrorLog = this.list_promptErrorLog(emc); - List os_unexpectedErrorLog = this.list_unexpectedErrorLog(emc); - List os_warnLog = this.list_warnLog(emc); - if (!os_promptErrorLog.isEmpty()) { - Req req = new Req(); - req.setName(Config.collect().getName()); - req.setPassword(Config.collect().getPassword()); - req.setPromptErrorLogList(os_promptErrorLog); - try { - ActionResponse response = ConnectionAction - .put(Config.collect().url(ADDRESS_COLLECT_PROMPTERRORLOG), null, req); - response.getData(WrapOutBoolean.class); - } catch (Exception e) { - e.printStackTrace(); - } - } - if (!os_unexpectedErrorLog.isEmpty()) { - Req req = new Req(); - req.setName(Config.collect().getName()); - req.setPassword(Config.collect().getPassword()); - req.setUnexceptedErrorLog(os_unexpectedErrorLog); - try { - ActionResponse response = ConnectionAction - .put(Config.collect().url(ADDRESS_COLLECT_UNEXPECTEDERRORLOG), null, req); - response.getData(WrapOutBoolean.class); - } catch (Exception e) { - e.printStackTrace(); - } - } - if (!os_warnLog.isEmpty()) { - Req req = new Req(); - req.setName(Config.collect().getName()); - req.setPassword(Config.collect().getPassword()); - req.setWarnLogList(os_warnLog); - try { - ActionResponse response = ConnectionAction - .put(Config.collect().url(ADDRESS_COLLECT_WARNLOG), null, req); - response.getData(WrapOutBoolean.class); - } catch (Exception e) { - e.printStackTrace(); - } - } - } else { - logger.info("无法登录到云服务器."); - } + Business business = new Business(emc); + if (BooleanUtils.isNotTrue(business.validateCollect())) { + logger.warn("login cloud server failure."); } } + this.collectPromptErrorLog(); + this.collectUnexpectedErrorLog(); + this.collectWarnLog(); } } catch (Exception e) { logger.error(e); @@ -97,12 +56,70 @@ public class CollectLog extends BaseAction { } } + private void collectPromptErrorLog() throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + List list = this.listPromptErrorLog(emc); + if (!list.isEmpty()) { + Req req = new Req(); + req.setName(Config.collect().getName()); + req.setPassword(Config.collect().getPassword()); + req.setPromptErrorLogList(list); + try { + ActionResponse response = ConnectionAction.put(Config.collect().url(ADDRESS_COLLECT_PROMPTERRORLOG), + null, req); + response.getData(WrapOutBoolean.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + private void collectUnexpectedErrorLog() throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + List list = this.listUnexpectedErrorLog(emc); + if (!list.isEmpty()) { + Req req = new Req(); + req.setName(Config.collect().getName()); + req.setPassword(Config.collect().getPassword()); + req.setUnexpectedErrorLogList(list); + try { + ActionResponse response = ConnectionAction + .put(Config.collect().url(ADDRESS_COLLECT_UNEXPECTEDERRORLOG), null, req); + response.getData(WrapOutBoolean.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + private void collectWarnLog() throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + List list = this.listWarnLog(emc); + if (!list.isEmpty()) { + Req req = new Req(); + req.setName(Config.collect().getName()); + req.setPassword(Config.collect().getPassword()); + req.setWarnLogList(list); + try { + ActionResponse response = ConnectionAction.put(Config.collect().url(ADDRESS_COLLECT_WARNLOG), null, + req); + response.getData(WrapOutBoolean.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + public static class Req extends GsonPropertyObject { + private static final long serialVersionUID = 2018703062822498687L; private String name; private String password; private List promptErrorLogList = new ArrayList<>(); - private List unexceptedErrorLog = new ArrayList<>(); + private List unexpectedErrorLogList = new ArrayList<>(); private List warnLogList = new ArrayList<>(); public String getName() { @@ -137,27 +154,28 @@ public class CollectLog extends BaseAction { this.warnLogList = warnLogList; } - public List getUnexceptedErrorLog() { - return unexceptedErrorLog; + public List getUnexpectedErrorLogList() { + return unexpectedErrorLogList; } - public void setUnexceptedErrorLog(List unexceptedErrorLog) { - this.unexceptedErrorLog = unexceptedErrorLog; + public void setUnexpectedErrorLogList(List unexpectedErrorLogList) { + this.unexpectedErrorLogList = unexpectedErrorLogList; } } - private List list_promptErrorLog(EntityManagerContainer emc) throws Exception { + private List listPromptErrorLog(EntityManagerContainer emc) throws Exception { EntityManager em = emc.get(PromptErrorLog.class); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(PromptErrorLog.class); Root root = cq.from(PromptErrorLog.class); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -1); - Predicate p = cb.greaterThan(root.get(PromptErrorLog_.createTime), cal.getTime()); - p = cb.and(p, cb.notEqual(root.get(PromptErrorLog_.collected), true)); - cq.select(root).where(p).orderBy(cb.desc(root.get(PromptErrorLog_.createTime))); - List list = em.createQuery(cq).setMaxResults(10).getResultList(); + Predicate p = cb.greaterThan(root.get(JpaObject_.createTime), cal.getTime()); + p = cb.and(p, cb.or(cb.notEqual(root.get(PromptErrorLog_.collected), true), + cb.isNull(root.get(PromptErrorLog_.collected)))); + cq.select(root).where(p).orderBy(cb.desc(root.get(JpaObject_.createTime))); + List list = em.createQuery(cq).setMaxResults(20).getResultList(); if (!list.isEmpty()) { emc.beginTransaction(PromptErrorLog.class); for (PromptErrorLog o : list) { @@ -168,17 +186,18 @@ public class CollectLog extends BaseAction { return list; } - private List list_unexpectedErrorLog(EntityManagerContainer emc) throws Exception { + private List listUnexpectedErrorLog(EntityManagerContainer emc) throws Exception { EntityManager em = emc.get(UnexpectedErrorLog.class); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(UnexpectedErrorLog.class); Root root = cq.from(UnexpectedErrorLog.class); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -1); - Predicate p = cb.greaterThan(root.get(UnexpectedErrorLog_.createTime), cal.getTime()); - p = cb.and(p, cb.notEqual(root.get(UnexpectedErrorLog_.collected), true)); - cq.select(root).where(p).orderBy(cb.desc(root.get(UnexpectedErrorLog_.createTime))); - List list = em.createQuery(cq).setMaxResults(10).getResultList(); + Predicate p = cb.greaterThan(root.get(JpaObject_.createTime), cal.getTime()); + p = cb.and(p, cb.or(cb.notEqual(root.get(UnexpectedErrorLog_.collected), true), + cb.isNull(root.get(UnexpectedErrorLog_.collected)))); + cq.select(root).where(p).orderBy(cb.desc(root.get(JpaObject_.createTime))); + List list = em.createQuery(cq).setMaxResults(20).getResultList(); if (!list.isEmpty()) { emc.beginTransaction(UnexpectedErrorLog.class); for (UnexpectedErrorLog o : list) { @@ -189,17 +208,17 @@ public class CollectLog extends BaseAction { return list; } - private List list_warnLog(EntityManagerContainer emc) throws Exception { + private List listWarnLog(EntityManagerContainer emc) throws Exception { EntityManager em = emc.get(WarnLog.class); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(WarnLog.class); Root root = cq.from(WarnLog.class); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -1); - Predicate p = cb.greaterThan(root.get(WarnLog_.createTime), cal.getTime()); - p = cb.and(p, cb.notEqual(root.get(WarnLog_.collected), true)); - cq.select(root).where(p).orderBy(cb.desc(root.get(WarnLog_.createTime))); - List list = em.createQuery(cq).setMaxResults(10).getResultList(); + Predicate p = cb.greaterThan(root.get(JpaObject_.createTime), cal.getTime()); + p = cb.and(p, cb.or(cb.notEqual(root.get(WarnLog_.collected), true), cb.isNull(root.get(WarnLog_.collected)))); + cq.select(root).where(p).orderBy(cb.desc(root.get(JpaObject_.createTime))); + List list = em.createQuery(cq).setMaxResults(20).getResultList(); if (!list.isEmpty()) { emc.beginTransaction(WarnLog.class); for (WarnLog o : list) {