Procházet zdrojové kódy

JobHandler#msg长度限制,修复异常情况下日志超长导致内存溢出的问题

xuxueli před 6 roky
rodič
revize
c071a63f14

+ 1 - 1
doc/XXL-JOB官方文档.md Zobrazit soubor

1434
 - 18、调度日志排序逻辑调整为按照调度时间倒序,兼容TIDB等主键不连续日志存储组件;
1434
 - 18、调度日志排序逻辑调整为按照调度时间倒序,兼容TIDB等主键不连续日志存储组件;
1435
 - 19、执行器优雅停机优化;
1435
 - 19、执行器优雅停机优化;
1436
 - 20、连接池配置优化,增强连接有效性验证;
1436
 - 20、连接池配置优化,增强连接有效性验证;
1437
-- 21、[迭代中]JobHandler执行结果日志长度限制:
1437
+- 21、JobHandler#msg长度限制,修复异常情况下日志超长导致内存溢出的问题;
1438
 - 22、[迭代中]执行器端口复用:
1438
 - 22、[迭代中]执行器端口复用:
1439
 - 23、[迭代中]任务线程隔离:
1439
 - 23、[迭代中]任务线程隔离:
1440
     - 执行器测异步响应,不存在阻塞不需要隔离;
1440
     - 执行器测异步响应,不存在阻塞不需要隔离;

+ 3 - 0
xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java Zobrazit soubor

154
 
154
 
155
 					if (executeResult == null) {
155
 					if (executeResult == null) {
156
 						executeResult = IJobHandler.FAIL;
156
 						executeResult = IJobHandler.FAIL;
157
+					} else {
158
+						executeResult.setMsg((executeResult!=null&&executeResult.getMsg().length()>50000)?executeResult.getMsg().substring(0, 50000).concat("..."):executeResult.getMsg());
159
+						executeResult.setContent(null);	// limit obj size
157
 					}
160
 					}
158
 					XxlJobLogger.log("<br>----------- xxl-job job execute end(finish) -----------<br>----------- ReturnT:" + executeResult);
161
 					XxlJobLogger.log("<br>----------- xxl-job job execute end(finish) -----------<br>----------- ReturnT:" + executeResult);
159
 
162