| | |
| | | private static Logger logger = LoggerFactory.getLogger(JobLogReportHelper.class); |
| | | |
| | | private static JobLogReportHelper instance = new JobLogReportHelper(); |
| | | public static JobLogReportHelper getInstance(){ |
| | | |
| | | public static JobLogReportHelper getInstance() { |
| | | return instance; |
| | | } |
| | | |
| | | |
| | | private Thread logrThread; |
| | | private volatile boolean toStop = false; |
| | | public void start(){ |
| | | |
| | | public void start() { |
| | | logrThread = new Thread(new Runnable() { |
| | | |
| | | @Override |
| | |
| | | xxlJobLogReport.setFailCount(0); |
| | | |
| | | Map<String, Object> triggerCountMap = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findLogReport(todayFrom, todayTo); |
| | | if (triggerCountMap!=null && triggerCountMap.size()>0) { |
| | | int triggerDayCount = triggerCountMap.containsKey("triggerDayCount")?Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCount"))):0; |
| | | int triggerDayCountRunning = triggerCountMap.containsKey("triggerDayCountRunning")?Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCountRunning"))):0; |
| | | int triggerDayCountSuc = triggerCountMap.containsKey("triggerDayCountSuc")?Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCountSuc"))):0; |
| | | if (triggerCountMap != null && triggerCountMap.size() > 0) { |
| | | int triggerDayCount = triggerCountMap.containsKey("triggerDayCount") ? Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCount"))) : 0; |
| | | int triggerDayCountRunning = triggerCountMap.containsKey("triggerDayCountRunning") ? Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCountRunning"))) : 0; |
| | | int triggerDayCountSuc = triggerCountMap.containsKey("triggerDayCountSuc") ? Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCountSuc"))) : 0; |
| | | int triggerDayCountFail = triggerDayCount - triggerDayCountRunning - triggerDayCountSuc; |
| | | |
| | | xxlJobLogReport.setRunningCount(triggerDayCountRunning); |
| | |
| | | } |
| | | |
| | | // 2、log-clean: switch open & once each day |
| | | if (XxlJobAdminConfig.getAdminConfig().getLogretentiondays()>0 |
| | | && System.currentTimeMillis() - lastCleanLogTime > 24*60*60*1000) { |
| | | if (XxlJobAdminConfig.getAdminConfig().getLogretentiondays() > 0 |
| | | && System.currentTimeMillis() - lastCleanLogTime > 24 * 60 * 60 * 1000) { |
| | | |
| | | // expire-time |
| | | Calendar expiredDay = Calendar.getInstance(); |
| | |
| | | List<Long> logIds = null; |
| | | do { |
| | | logIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findClearLogIds(0, 0, clearBeforeTime, 0, 1000); |
| | | if (logIds!=null && logIds.size()>0) { |
| | | if (logIds != null && logIds.size() > 0) { |
| | | XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().clearLog(logIds); |
| | | } |
| | | } while (logIds!=null && logIds.size()>0); |
| | | } while (logIds != null && logIds.size() > 0); |
| | | |
| | | // update clean time |
| | | lastCleanLogTime = System.currentTimeMillis(); |
| | |
| | | logrThread.start(); |
| | | } |
| | | |
| | | public void toStop(){ |
| | | public void toStop() { |
| | | toStop = true; |
| | | // interrupt and wait |
| | | logrThread.interrupt(); |