From 029433c351ebfec8ae7971d91e619b32f217bdda Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Mon, 4 Sep 2017 20:57:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0RM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/XXL-JOB官方文档.md | 19 ++++++++++--------- .../xxl/job/core/log/XxlJobFileAppender.java | 5 +++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index 650cb3fa..49c7a3ae 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -998,15 +998,16 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 - 11、统一maven依赖版本管理; ### 6.18 版本 V1.8.2 特性[Coding] -- 1、解决执行器回调URL不支持配置HTTPS时问题; -- 2、规范项目目录,方便扩展多执行器; -- 3、新增JFinal类型执行器sample示例项目; -- 4、执行器手动设置IP时将会绑定Host; -- 5、项目主页搭建,提供中英文文档(http://www.xuxueli.com/xxl-job); -- 6、执行器回调线程销毁前, 批量回调队列中数据,防止任务结果丢失; -- 7、执行器摘除:执行器销毁时,主动通知调度中心并摘除对应执行器节点,提高执行器状态感知的时效性。 -- 8、调度中心任务监控线程销毁时,批量对失败任务告警,防止告警信息丢失; -- 9、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。 +- 1、项目主页搭建:提供中英文文档:http://www.xuxueli.com/xxl-job +- 2、JFinal执行器Sample示例项目; +- 3、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。 +- 4、执行器摘除:执行器销毁时,主动通知调度中心并摘除对应执行器节点,提高执行器状态感知的时效性。 +- 5、执行器手动设置IP时将会绑定Host; +- 6、规范项目目录,方便扩展多执行器; +- 7、解决执行器回调URL不支持配置HTTPS时问题; +- 8、执行器回调线程销毁前, 批量回调队列中数据,防止任务结果丢失; +- 9、调度中心任务监控线程销毁时,批量对失败任务告警,防止告警信息丢失; +- 10、任务日志文件路径时间戳格式化时SimpleDateFormat并发问题解决; ### TODO LIST - 1、任务权限管理:执行器为粒度分配权限,核心操作校验权限; diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java b/xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java index 1a502344..2ed2f7fa 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java @@ -18,7 +18,6 @@ public class XxlJobFileAppender { // for JobThread (support log for child thread of job handler) //public static ThreadLocal contextHolder = new ThreadLocal(); public static final InheritableThreadLocal contextHolder = new InheritableThreadLocal(); - public static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // TODO, concurrent issues public static String logPath = "/data/applogs/xxl-job/jobhandler/"; /** @@ -37,6 +36,8 @@ public class XxlJobFileAppender { } // filePath/yyyy-MM-dd/ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // avoid concurrent problem, can not be static + String nowFormat = sdf.format(new Date()); File filePathDateDir = new File(filePathDir, nowFormat); if (!filePathDateDir.exists()) { @@ -44,7 +45,7 @@ public class XxlJobFileAppender { } // filePath/yyyy-MM-dd/9999.log - String logFileName = XxlJobFileAppender.sdf.format(triggerDate).concat("/").concat(String.valueOf(logId)).concat(".log"); + String logFileName = sdf.format(triggerDate).concat("/").concat(String.valueOf(logId)).concat(".log"); return logFileName; }