Browse Source

任务日志查询速度优化,百万级别日志量搜索速度提升1000倍;

xuxueli 6 years ago
parent
commit
5ae12fdb1a

+ 4 - 4
doc/XXL-JOB官方文档.md

@@ -1194,6 +1194,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
 - 6、Glue(Shell) 等脚本任务支持失败重试;
 - 7、告警邮箱支持SSL配置;
 - 8、Window机器下File.separator不兼容问题修复;
+- 9、任务日志查询速度优化,百万级别日志量搜索速度提升1000倍;
 
 
 ### TODO LIST
@@ -1218,10 +1219,9 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
 - 19、提供多版本执行器:不依赖容器版本、不内嵌Jetty版本(通过配置executoraddress替换jetty通讯)等;
 - 20、注册中心支持扩展,除默认基于DB之外,支持扩展接入第三方注册中心如zk、eureka等;
 - 21、依赖Core内部国际化处理;
-- 22、大数据量下任务日志分页优化,时间选择组件支持清空功能可提升速度;
-- 23、故障转移、失败重试等策略,规范化合并归类;
-- 24、流程任务,支持参数传递;
-- 25、SimpleTrigger 支持;
+- 22、故障转移、失败重试等策略,规范化合并归类;
+- 23、流程任务,支持参数传递;
+- 24、SimpleTrigger 支持;
 
 
 ## 七、其他

+ 2 - 1
doc/db/tables_xxl_job.sql

@@ -185,7 +185,8 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOG` (
   `handle_time` datetime DEFAULT NULL COMMENT '执行-时间',
   `handle_code` int(11) NOT NULL COMMENT '执行-状态',
   `handle_msg` varchar(2048) DEFAULT NULL COMMENT '执行-日志',
-  PRIMARY KEY (`id`)
+  PRIMARY KEY (`id`),
+  KEY `I_trigger_time` (`trigger_time`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOGGLUE` (

+ 4 - 5
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java

@@ -6,7 +6,6 @@ import com.xxl.job.admin.core.model.XxlJobInfo;
 import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
 import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
 import com.xxl.job.admin.core.util.I18nUtil;
-import com.xxl.job.admin.core.util.LocalCacheUtil;
 import com.xxl.job.admin.dao.XxlJobGroupDao;
 import com.xxl.job.admin.dao.XxlJobInfoDao;
 import com.xxl.job.admin.dao.XxlJobLogDao;
@@ -324,12 +323,12 @@ public class XxlJobServiceImpl implements XxlJobService {
 	private static final String TRIGGER_CHART_DATA_CACHE = "trigger_chart_data_cache";
 	@Override
 	public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) {
-		// get cache
+		/*// get cache
 		String cacheKey = TRIGGER_CHART_DATA_CACHE + "_" + startDate.getTime() + "_" + endDate.getTime();
 		Map<String, Object> chartInfo = (Map<String, Object>) LocalCacheUtil.get(cacheKey);
 		if (chartInfo != null) {
 			return new ReturnT<Map<String, Object>>(chartInfo);
-		}
+		}*/
 
 		// process
 		List<String> triggerDayList = new ArrayList<String>();
@@ -376,8 +375,8 @@ public class XxlJobServiceImpl implements XxlJobService {
 		result.put("triggerCountSucTotal", triggerCountSucTotal);
 		result.put("triggerCountFailTotal", triggerCountFailTotal);
 
-		// set cache
-		LocalCacheUtil.set(cacheKey, result, 60*1000);     // cache 60s
+		/*// set cache
+		LocalCacheUtil.set(cacheKey, result, 60*1000);     // cache 60s*/
 
 		return new ReturnT<Map<String, Object>>(result);
 	}