From 0169d537ef378d0312bc80937a29982b9d3635f5 Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Mon, 22 Jan 2018 21:21:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E5=BA=A6=E6=8A=A5=E8=A1=A8=E6=96=B0?= =?UTF-8?q?=E5=A2=9E"=E8=BF=90=E8=A1=8C=E4=B8=AD"=E4=B8=AD=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E9=A1=B9=EF=BC=8C=E6=95=B0=E6=8D=AE=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?SQL=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/XXL-JOB官方文档.md | 4 ++- .../com/xxl/job/admin/core/util/I18nUtil.java | 2 +- .../com/xxl/job/admin/dao/XxlJobLogDao.java | 3 +- .../admin/service/impl/XxlJobServiceImpl.java | 36 +++++++++---------- .../main/resources/i18n/message.properties | 4 --- .../main/resources/i18n/message_en.properties | 4 --- .../mybatis-mapper/XxlJobLogMapper.xml | 15 ++++---- .../src/main/webapp/static/js/index.js | 35 +++++++++++------- .../xxl/job/admin/dao/XxlJobLogDaoTest.java | 2 +- 9 files changed, 54 insertions(+), 51 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index d2f07167..0e291d37 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -1144,6 +1144,8 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 - 1、修复打包部署时资源文件乱码问题; - 2、修复新版本chrome滚动到顶部失效问题; - 3、国际化:调度中心实现国际化,支持中文、英文两种语言,默认为中文。 +- 4、调度报表新增"运行中"中状态项,数据加载SQL优化; +- 5、调度报表缓存优化,修复大数据量执行日志加载缓慢的问题; ### TODO LIST - 1、任务权限管理:执行器为粒度分配权限,核心操作校验权限; @@ -1161,7 +1163,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 - 13、任务依赖增强,新增任务类型 "流程任务",流程节点可挂载普通类型任务,承担任务依赖功能。现有子任务模型取消;需要考虑任务依赖死循环问题; - 14、分片任务某一分片失败,支持分片转移; - 15、调度中心触发任务后,先推送触发队列,异步触发,然后立即返回。降低quartz线程占用时长。 -- 16、调度报表加载速度慢问题; + ## 七、其他 diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/I18nUtil.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/I18nUtil.java index 27c34a86..150604b8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/I18nUtil.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/I18nUtil.java @@ -28,7 +28,7 @@ public class I18nUtil { public static Properties loadI18nProp(){ if (prop != null && (System.currentTimeMillis()-lastCacheTim)<60*1000) { - return prop; + //return prop; } try { // bild i18n prop diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java index 0f91c79e..8263811b 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java @@ -41,8 +41,7 @@ public interface XxlJobLogDao { public int triggerCountByHandleCode(@Param("handleCode") int handleCode); public List> triggerCountByDay(@Param("from") Date from, - @Param("to") Date to, - @Param("handleCode") int handleCode); + @Param("to") Date to); public int clearLog(@Param("jobGroup") int jobGroup, @Param("jobId") int jobId, diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java index 0df0426a..55cec455 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java @@ -323,35 +323,30 @@ public class XxlJobServiceImpl implements XxlJobService { @Override public ReturnT> triggerChartDate(Date startDate, Date endDate) { List triggerDayList = new ArrayList(); + List triggerDayCountRunningList = new ArrayList(); List triggerDayCountSucList = new ArrayList(); List triggerDayCountFailList = new ArrayList(); + int triggerCountRunningTotal = 0; int triggerCountSucTotal = 0; int triggerCountFailTotal = 0; - List> triggerCountMapAll = xxlJobLogDao.triggerCountByDay(startDate, endDate, -1); - List> triggerCountMapSuc = xxlJobLogDao.triggerCountByDay(startDate, endDate, ReturnT.SUCCESS_CODE); + List> triggerCountMapAll = xxlJobLogDao.triggerCountByDay(startDate, endDate); if (CollectionUtils.isNotEmpty(triggerCountMapAll)) { for (Map item: triggerCountMapAll) { String day = String.valueOf(item.get("triggerDay")); - int dayAllCount = Integer.valueOf(String.valueOf(item.get("triggerCount"))); - int daySucCount = 0; - int dayFailCount = dayAllCount - daySucCount; - - if (CollectionUtils.isNotEmpty(triggerCountMapSuc)) { - for (Map sucItem: triggerCountMapSuc) { - String daySuc = String.valueOf(sucItem.get("triggerDay")); - if (day.equals(daySuc)) { - daySucCount = Integer.valueOf(String.valueOf(sucItem.get("triggerCount"))); - dayFailCount = dayAllCount - daySucCount; - } - } - } + int triggerDayCount = Integer.valueOf(String.valueOf(item.get("triggerDayCount"))); + int triggerDayCountRunning = Integer.valueOf(String.valueOf(item.get("triggerDayCountRunning"))); + int triggerDayCountSuc = Integer.valueOf(String.valueOf(item.get("triggerDayCountSuc"))); + int triggerDayCountFail = triggerDayCount - triggerDayCountRunning - triggerDayCountSuc; triggerDayList.add(day); - triggerDayCountSucList.add(daySucCount); - triggerDayCountFailList.add(dayFailCount); - triggerCountSucTotal += daySucCount; - triggerCountFailTotal += dayFailCount; + triggerDayCountRunningList.add(triggerDayCountRunning); + triggerDayCountSucList.add(triggerDayCountSuc); + triggerDayCountFailList.add(triggerDayCountFail); + + triggerCountRunningTotal += triggerDayCountRunning; + triggerCountSucTotal += triggerDayCountSuc; + triggerCountFailTotal += triggerDayCountFail; } } else { for (int i = 4; i > -1; i--) { @@ -363,8 +358,11 @@ public class XxlJobServiceImpl implements XxlJobService { Map result = new HashMap(); result.put("triggerDayList", triggerDayList); + result.put("triggerDayCountRunningList", triggerDayCountRunningList); result.put("triggerDayCountSucList", triggerDayCountSucList); result.put("triggerDayCountFailList", triggerDayCountFailList); + + result.put("triggerCountRunningTotal", triggerCountRunningTotal); result.put("triggerCountSucTotal", triggerCountSucTotal); result.put("triggerCountFailTotal", triggerCountFailTotal); return new ReturnT>(result); diff --git a/xxl-job-admin/src/main/resources/i18n/message.properties b/xxl-job-admin/src/main/resources/i18n/message.properties index 694beef0..6208e075 100644 --- a/xxl-job-admin/src/main/resources/i18n/message.properties +++ b/xxl-job-admin/src/main/resources/i18n/message.properties @@ -93,11 +93,7 @@ job_dashboard_jobgroup_num_tip=调度中心在线的执行器机器数量 job_dashboard_report=调度报表 job_dashboard_report_loaddata_fail=调度报表数据加载异常 job_dashboard_date_report=日期分布图 -job_dashboard_date_report_suc_count=成功调度次数 -job_dashboard_date_report_fail_count=失败调度次数 job_dashboard_rate_report=成功比例图 -job_dashboard_rate_report_suc_count=成功调度次数 -job_dashboard_rate_report_fail_count=失败调度次数 ## job info jobinfo_name=任务管理 diff --git a/xxl-job-admin/src/main/resources/i18n/message_en.properties b/xxl-job-admin/src/main/resources/i18n/message_en.properties index b91936e7..928a6881 100644 --- a/xxl-job-admin/src/main/resources/i18n/message_en.properties +++ b/xxl-job-admin/src/main/resources/i18n/message_en.properties @@ -93,11 +93,7 @@ job_dashboard_jobgroup_num_tip=The number of online executor machines perceived job_dashboard_report=Scheduling report job_dashboard_report_loaddata_fail=Scheduling report load data error job_dashboard_date_report=Date distribution -job_dashboard_date_report_suc_count=Successful scheduling number -job_dashboard_date_report_fail_count=Fail scheduling number job_dashboard_rate_report=Percentage distribution -job_dashboard_rate_report_suc_count=Successful scheduling percentage -job_dashboard_rate_report_fail_count=Fail scheduling percentage ## job info jobinfo_name=Job Manage diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml index a767aebd..6298a6da 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml @@ -163,13 +163,14 @@ diff --git a/xxl-job-admin/src/main/webapp/static/js/index.js b/xxl-job-admin/src/main/webapp/static/js/index.js index 6f7417e0..9010d539 100644 --- a/xxl-job-admin/src/main/webapp/static/js/index.js +++ b/xxl-job-admin/src/main/webapp/static/js/index.js @@ -89,7 +89,7 @@ $(function () { } }, legend: { - data:[I18n.job_dashboard_date_report_suc_count, I18n.job_dashboard_date_report_fail_count] + data:[I18n.joblog_status_suc, I18n.joblog_status_fail, I18n.joblog_status_running] }, toolbox: { feature: { @@ -116,14 +116,14 @@ $(function () { ], series : [ { - name:I18n.job_dashboard_date_report_suc_count, + name:I18n.joblog_status_suc, type:'line', stack: 'Total', areaStyle: {normal: {}}, data: data.content.triggerDayCountSucList }, { - name:I18n.job_dashboard_date_report_fail_count, + name:I18n.joblog_status_fail, type:'line', stack: 'Total', label: { @@ -134,9 +134,16 @@ $(function () { }, areaStyle: {normal: {}}, data: data.content.triggerDayCountFailList + }, + { + name:I18n.joblog_status_running, + type:'line', + stack: 'Total', + areaStyle: {normal: {}}, + data: data.content.triggerDayCountRunningList } ], - color:['#00A65A', '#F39C12'] + color:['#00A65A', '#c23632', '#F39C12'] }; var lineChart = echarts.init(document.getElementById('lineChart')); @@ -155,27 +162,31 @@ $(function () { }, tooltip : { trigger: 'item', - formatter: "{a}
{b} : {c} ({d}%)" + formatter: "{b} : {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', - data: [I18n.job_dashboard_rate_report_suc_count, I18n.job_dashboard_rate_report_fail_count ] + data: [I18n.joblog_status_suc, I18n.joblog_status_fail, I18n.joblog_status_running ] }, series : [ { - name: '分布比例', + //name: '分布比例', type: 'pie', radius : '55%', center: ['50%', '60%'], data:[ { - value:data.content.triggerCountSucTotal, - name:I18n.job_dashboard_rate_report_suc_count + name:I18n.joblog_status_suc, + value:data.content.triggerCountSucTotal }, { - value:data.content.triggerCountFailTotal, - name:I18n.job_dashboard_rate_report_fail_count + name:I18n.joblog_status_fail, + value:data.content.triggerCountFailTotal + }, + { + name:I18n.joblog_status_running, + value:data.content.triggerCountRunningTotal } ], itemStyle: { @@ -187,7 +198,7 @@ $(function () { } } ], - color:['#00A65A', '#F39C12'] + color:['#00A65A', '#c23632', '#F39C12'] }; var pieChart = echarts.init(document.getElementById('pieChart')); pieChart.setOption(option); diff --git a/xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogDaoTest.java b/xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogDaoTest.java index 02652bbc..450e28f0 100644 --- a/xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogDaoTest.java +++ b/xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogDaoTest.java @@ -50,7 +50,7 @@ public class XxlJobLogDaoTest { dto = xxlJobLogDao.load(log.getId()); - List> list2 = xxlJobLogDao.triggerCountByDay(DateUtils.addDays(new Date(), 30), new Date(), 200); + List> list2 = xxlJobLogDao.triggerCountByDay(DateUtils.addDays(new Date(), 30), new Date()); int ret4 = xxlJobLogDao.clearLog(1, 1, new Date(), 100);