Quellcode durchsuchen

执行器日志清理优化,修复小概率下日志文件为空导致清理异常问题;

xueli.xue vor 5 Jahren
Ursprung
Commit
6b6969b417

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

@@ -2047,10 +2047,11 @@ data: post-data
     - 6.1、废弃 "ShardingUtil" 组件:改用 "XxlJobContext.getXxlJobContext().getShardIndex()/getShardTotal();" 获取分片参数;
     - 6.2、日志组件逻辑调整:日志组件改为通过 XxlJobContent 获取任务上下文并匹配写入对应日志文件;
 - 7、页面redirect跳转后https变为http问题修复;
-- 8、调度线程连接池优化,修复连接有效性校验超时问题
+- 8、调度线程连接池优化,修复连接有效性校验超时问题
 - 9、轮训路由策略优化,修复小概率下并发问题;
-- 10、[规划中]任务触发参数优化:支持选择 "Cron触发"、"固定间隔时间触发"、"指定时间点触发"、"不选择" 等;
-- 11、[规划中]分片任务:全部完成后才会出发后置节点;
+- 10、执行器日志清理优化,修复小概率下日志文件为空导致清理异常问题;
+- 11、[规划中]任务触发参数优化:支持选择 "Cron触发"、"固定间隔时间触发"、"指定时间点触发"、"不选择" 等;
+- 12、[规划中]分片任务:全部完成后才会出发后置节点;
 
 ### 7.32 版本 v2.3.0 Release Notes[规划中]
 - 1、[规划中]DAG流程任务

+ 4 - 0
xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java

@@ -241,9 +241,13 @@ public class TriggerCallbackThread {
         // load and clear file, retry
         for (File callbaclLogFile: callbackLogPath.listFiles()) {
             byte[] callbackParamList_bytes = FileUtil.readFileContent(callbaclLogFile);
+
+            // avoid empty file
             if(callbackParamList_bytes == null || callbackParamList_bytes.length < 1){
+                callbaclLogFile.delete();
                 continue;
             }
+
             List<HandleCallbackParam> callbackParamList = (List<HandleCallbackParam>) JdkSerializeTool.deserialize(callbackParamList_bytes, List.class);
 
             callbaclLogFile.delete();