JobHandler中开启子线程时,支持子线程输出执行日志并通过Rolling查看。

This commit is contained in:
xueli.xue 2017-05-07 20:00:52 +08:00
parent f0b46e12d1
commit 7b59be46c5
4 changed files with 19 additions and 8 deletions

View File

@ -409,6 +409,8 @@ try{
}
```
而且在JobHandler中开启子线程时子线程也不可catch处理"InterruptedException",应该主动向上抛出。
#### 4.9 删除任务
点击删除按钮,可以删除对应任务。
@ -598,6 +600,8 @@ XXL-JOB会为每次调度请求生成一个单独的日志文件需要通过
日志文件存放的位置可在“执行器”配置文件进行自定义,默认目录格式为:/data/applogs/xxl-job/jobhandler/“格式化日期”/“数据库调度日志记录的主键ID.log”。
在JobHandler中开启子线程时子线程将会将会把日志打印在父线程即JobHandler的执行日志中方便日志追踪。
#### 5.6 通讯模块剖析
##### 5.6.1 一次完整的任务调度通讯流程
@ -804,9 +808,10 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
- 6、登录拦截Redirect时获取项目名解决非根据目录发布时跳转404问题
#### 6.15 版本 V1.7.1 特性Coding
- 1、任务分片一个任务被拆分成N个独立的任务单元然后由分布式部署的执行器分别执行某一个或几个分片单元
- 2、任务分片路由分片采用一致性Hash算法计算出尽量稳定的分片顺序即使注册机器存在波动也不会引起分批分片顺序大的波动
- 1、运行日志读写编码统一解决windows环境下日志乱码问题
- 2、通讯超时时间设置为10s避免异常情况下调度线程占用
- 3、JettyServer关闭逻辑优化修复执行器无法正常关闭的问题
- 4、JobHandler中开启子线程时支持子线程输出执行日志并通过Rolling查看。
#### TODO LIST
- 1、任务并行触发处理规则单机串行队列默认、单机并行、串行忽略、单机覆盖
@ -816,6 +821,8 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
- 5、JobHandler开启多线程时支持记录执行日志
- 6、执行器与数据库解耦只需配置调度中心集群地址即可与当前通过JDBC注册自动发现方式相冲突待考虑
- 7、任务日志定期清理功能支持设置日志上限
- 8、任务分片一个任务被拆分成N个独立的任务单元然后由分布式部署的执行器分别执行某一个或几个分片单元
- 9、任务分片路由分片采用一致性Hash算法计算出尽量稳定的分片顺序即使注册机器存在波动也不会引起分批分片顺序大的波动
## 七、其他

View File

@ -81,9 +81,9 @@
<!-- sidebar menu: : style can be found in sidebar.less -->
<ul class="sidebar-menu">
<li class="header">常用模块</li>
<li class="nav-click <#if pageName == "jobinfo">active</#if>" ><a href="${request.contextPath}/jobinfo"><i class="fa fa-circle-o text-aqua"></i> <span>任务管理</span></a></li>
<li class="nav-click <#if pageName == "jobinfo">active</#if>" ><a href="${request.contextPath}/jobinfo"><i class="fa fa-circle-o text-aqua"></i><span>任务管理</span></a></li>
<li class="nav-click <#if pageName == "joblog">active</#if>" ><a href="${request.contextPath}/joblog"><i class="fa fa-circle-o text-yellow"></i><span>调度日志</span></a></li>
<li class="nav-click <#if pageName == "jobgroup">active</#if>" ><a href="${request.contextPath}/jobgroup"><i class="fa fa-circle-o text-green"></i> <span>执行器管理</span></a></li>
<li class="nav-click <#if pageName == "jobgroup">active</#if>" ><a href="${request.contextPath}/jobgroup"><i class="fa fa-circle-o text-green"></i><span>执行器管理</span></a></li>
<li class="nav-click <#if pageName == "help">active</#if>" ><a href="${request.contextPath}/help"><i class="fa fa-circle-o text-gray"></i><span>使用教程</span></a></li>
</ul>
</section>

View File

@ -143,7 +143,10 @@ $(function() {
return data?'<a class="logTips" href="javascript:;" >查看<span style="display:none;">'+ data +'</span></a>':"";
}
},
{ "data": 'handleMsg' , "bSortable": false,
{
"data": 'handleMsg' ,
"bSortable": false,
"width": "8%" ,
"render": function ( data, type, row ) {
// better support expression or string, not function
return function () {

View File

@ -16,8 +16,9 @@ import java.util.Date;
public class XxlJobFileAppender {
private static Logger logger = LoggerFactory.getLogger(XxlJobFileAppender.class);
// for JobThread
public static ThreadLocal<String> contextHolder = new ThreadLocal<String>();
// for JobThread (support log for child thread)
//public static ThreadLocal<String> contextHolder = new ThreadLocal<String>();
public static InheritableThreadLocal<String> contextHolder = new InheritableThreadLocal<String>();
public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/**