diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index 2bda00b6..9e7e1540 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -1241,8 +1241,9 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 - 25、任务调度备注中标注任务触发类型,如Cron触发、父任务触发、API触发等等,方便排查调度日志; - 26、底层日志组件SimpleDateFormat线程安全问题修复; - 27、执行器通讯线程优化,corePoolSize从256降低至32; -- 28、【迭代中】新增任务运行模式 "GLUE模式(PowerShell) ",支持PowerShell脚本任务; -- 29、【迭代中】分片任务失败重试优化,仅重试当前失败的分片; +- 28、新增任务运行模式 "GLUE模式(PowerShell) ",支持PowerShell脚本任务; +- 29、GLUE脚本文件自动清理功能,及时清理过期脚本文件; +- 30、【迭代中】分片任务失败重试优化,仅重试当前失败的分片; ### TODO LIST diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/ScriptJobHandler.java b/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/ScriptJobHandler.java index 32741182..452c3877 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/ScriptJobHandler.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/ScriptJobHandler.java @@ -25,6 +25,20 @@ public class ScriptJobHandler extends IJobHandler { this.glueUpdatetime = glueUpdatetime; this.gluesource = gluesource; this.glueType = glueType; + + // clean old script file + File glueSrcPath = new File(XxlJobFileAppender.getGlueSrcPath()); + if (glueSrcPath.exists()) { + File[] glueSrcFileList = glueSrcPath.listFiles(); + if (glueSrcFileList!=null && glueSrcFileList.length>0) { + for (File glueSrcFileItem : glueSrcFileList) { + if (glueSrcFileItem.getName().startsWith(String.valueOf(jobId)+"_")) { + glueSrcFileItem.delete(); + } + } + } + } + } public long getGlueUpdatetime() { @@ -48,7 +62,10 @@ public class ScriptJobHandler extends IJobHandler { .concat("_") .concat(String.valueOf(glueUpdatetime)) .concat(glueType.getSuffix()); - ScriptUtil.markScriptFile(scriptFileName, gluesource); + File scriptFile = new File(scriptFileName); + if (!scriptFile.exists()) { + ScriptUtil.markScriptFile(scriptFileName, gluesource); + } // log file String logFileName = XxlJobFileAppender.contextHolder.get();