Browse Source

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

xuxueli 7 years ago
parent
commit
5ae12fdb1a

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

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

+ 2 - 1
doc/db/tables_xxl_job.sql View File

185
   `handle_time` datetime DEFAULT NULL COMMENT '执行-时间',
185
   `handle_time` datetime DEFAULT NULL COMMENT '执行-时间',
186
   `handle_code` int(11) NOT NULL COMMENT '执行-状态',
186
   `handle_code` int(11) NOT NULL COMMENT '执行-状态',
187
   `handle_msg` varchar(2048) DEFAULT NULL COMMENT '执行-日志',
187
   `handle_msg` varchar(2048) DEFAULT NULL COMMENT '执行-日志',
188
-  PRIMARY KEY (`id`)
188
+  PRIMARY KEY (`id`),
189
+  KEY `I_trigger_time` (`trigger_time`)
189
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
190
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
190
 
191
 
191
 CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOGGLUE` (
192
 CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOGGLUE` (

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

6
 import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
6
 import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
7
 import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
7
 import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
8
 import com.xxl.job.admin.core.util.I18nUtil;
8
 import com.xxl.job.admin.core.util.I18nUtil;
9
-import com.xxl.job.admin.core.util.LocalCacheUtil;
10
 import com.xxl.job.admin.dao.XxlJobGroupDao;
9
 import com.xxl.job.admin.dao.XxlJobGroupDao;
11
 import com.xxl.job.admin.dao.XxlJobInfoDao;
10
 import com.xxl.job.admin.dao.XxlJobInfoDao;
12
 import com.xxl.job.admin.dao.XxlJobLogDao;
11
 import com.xxl.job.admin.dao.XxlJobLogDao;
324
 	private static final String TRIGGER_CHART_DATA_CACHE = "trigger_chart_data_cache";
323
 	private static final String TRIGGER_CHART_DATA_CACHE = "trigger_chart_data_cache";
325
 	@Override
324
 	@Override
326
 	public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) {
325
 	public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) {
327
-		// get cache
326
+		/*// get cache
328
 		String cacheKey = TRIGGER_CHART_DATA_CACHE + "_" + startDate.getTime() + "_" + endDate.getTime();
327
 		String cacheKey = TRIGGER_CHART_DATA_CACHE + "_" + startDate.getTime() + "_" + endDate.getTime();
329
 		Map<String, Object> chartInfo = (Map<String, Object>) LocalCacheUtil.get(cacheKey);
328
 		Map<String, Object> chartInfo = (Map<String, Object>) LocalCacheUtil.get(cacheKey);
330
 		if (chartInfo != null) {
329
 		if (chartInfo != null) {
331
 			return new ReturnT<Map<String, Object>>(chartInfo);
330
 			return new ReturnT<Map<String, Object>>(chartInfo);
332
-		}
331
+		}*/
333
 
332
 
334
 		// process
333
 		// process
335
 		List<String> triggerDayList = new ArrayList<String>();
334
 		List<String> triggerDayList = new ArrayList<String>();
376
 		result.put("triggerCountSucTotal", triggerCountSucTotal);
375
 		result.put("triggerCountSucTotal", triggerCountSucTotal);
377
 		result.put("triggerCountFailTotal", triggerCountFailTotal);
376
 		result.put("triggerCountFailTotal", triggerCountFailTotal);
378
 
377
 
379
-		// set cache
380
-		LocalCacheUtil.set(cacheKey, result, 60*1000);     // cache 60s
378
+		/*// set cache
379
+		LocalCacheUtil.set(cacheKey, result, 60*1000);     // cache 60s*/
381
 
380
 
382
 		return new ReturnT<Map<String, Object>>(result);
381
 		return new ReturnT<Map<String, Object>>(result);
383
 	}
382
 	}