diff --git a/README.md b/README.md index 20a058b8..a8ae8478 100644 --- a/README.md +++ b/README.md @@ -42,13 +42,16 @@ XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是 **我司大众点评目前已接入XXL-JOB,内部别名《Ferrari》(Ferrari基于XXL-JOB的V1.1版本定制而成,新接入应用推荐升级最新版本V1.3)**。自2016-01-21接入至2016-05-20为止进行统计,该系统已调度40000余次,表现优异。新接入应用推荐使用最新版本V1.3,因为经过两个大版本的更新,系统的任务模型、UI交互模型以及底层调度通讯模型都有了较大的提升,核心功能更加稳定高效。 -至今,XXL-JOB已接入多家公司的线上产品线,接入场景如电商业务,O2O业务和大数据作业等,截止2016-05-20为止,XXL-JOB已接入的公司包括不限于: +至今,XXL-JOB已接入多家公司的线上产品线,接入场景如电商业务,O2O业务和大数据作业等,截止2016-07-19为止,XXL-JOB已接入的公司包括不限于: - 1、大众点评; - 2、山东学而网络科技有限公司; - 3、安徽慧通互联科技有限公司; - 4、人人聚财金服; - 5、上海棠棣信息科技股份有限公司 + - 6、运满满 + - 7、米其林(中国区) + - 8、妈妈联盟 - …… 欢迎大家的关注和使用,XXL-JOB也将拥抱变化,持续发展。 @@ -253,7 +256,11 @@ XXL-JOB会为每次调度请求生成一个单独的日志文件,通过重写L #### 4.6 版本 V1.4.0 新特性 - 1、任务依赖: 通过事件触发方式实现, 任务执行成功并回调SUCCESS时, 会主动触发一次依赖任务的调度; -- 2、调度中心任务属性调整: jobName改为系统生成, 新增任务时不需要指定; +- 2、调度中心, 新建/编辑任务, 界面属性调整: + - 2.1、"任务名JobName"属性改为系统自动生成, 任务新增/编辑界面中去除该字段: 该字段之前主要用于在 "调度中心" 唯一标示一个任务, 现实意义不大, 因此计划淡化掉该字段,改为系统生成UUID,从而简化任务新建的操作; + - 2.2、"JobHandler"属性改为系统自动生成, 更名为"JobKey", 使用时copy即可: 之前该值支持自定义,这样会出现多个调度任务调用同一个JobHandler的情况,而JobHandler在执行器是根据改值进行分组的,这就导致不同的任务存在阻塞和相互影响,因此改之; + - 2.3、"任务组" 改为 "分组"; + - 2.4、"描述" 改为 "名称"; - 3、问题修复: - 1.1、执行器jetty关闭优化,解决一处可能导致jetty无法关闭的问题; - 1.2、执行器任务终止时,执行队列回调优化,解决一处导致任务无法回调的问题; @@ -261,6 +268,7 @@ XXL-JOB会为每次调度请求生成一个单独的日志文件,通过重写L - 1.4、执行器Jobhandler注解优化,解决一处因事务代理导致的容器无法加载JobHandler的问题; - 1.5、远程调度优化,禁用retry策略,解决一处可能导致重复调用的问题; +Tips: V1.3.x版本已经Release稳定版本, 进入维护阶段, 地址见分支 [V1.3](https://github.com/xuxueli/xxl-job/tree/v1.3) , 新特性将会在master分支持续更新。 #### 规划中 - 2、任务执行规则自定义:假如前一个任务正在执行,后续调度执行规则支持自定义; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index f729debe..1cb8113e 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -57,10 +57,10 @@ public class RemoteHttpJobBean extends QuartzJobBean { params.put(HandlerParamEnum.LOG_ADDRESS.name(), XxlJobLogCallbackServer.getTrigger_log_address()); params.put(HandlerParamEnum.LOG_ID.name(), String.valueOf(jobLog.getId())); - + params.put(HandlerParamEnum.EXECUTOR_HANDLER.name(), jobInfo.getExecutorHandler()); params.put(HandlerParamEnum.EXECUTOR_PARAMS.name(), jobInfo.getExecutorParam()); - + params.put(HandlerParamEnum.GLUE_SWITCH.name(), String.valueOf(jobInfo.getGlueSwitch())); params.put(HandlerParamEnum.JOB_GROUP.name(), jobInfo.getJobGroup()); params.put(HandlerParamEnum.JOB_NAME.name(), jobInfo.getJobName()); diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl index 45c49d15..f6befe31 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl @@ -86,10 +86,10 @@ 任务参数 调度时间 调度结果 - 调度日志 + 调度备注 执行时间 执行结果 - 执行日志 + 执行备注 操作 diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/handler/HandlerRepository.java b/xxl-job-core/src/main/java/com/xxl/job/core/handler/HandlerRepository.java index 15762b35..f856c69b 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/handler/HandlerRepository.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/handler/HandlerRepository.java @@ -40,7 +40,7 @@ public class HandlerRepository { */ EXECUTOR_PARAMS, /** - * switch of job, if open glue model + * switch of glue job: 0-no,1-yes */ GLUE_SWITCH, /** diff --git a/xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java b/xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java index f95654d9..d57f3600 100644 --- a/xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java +++ b/xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java @@ -30,7 +30,7 @@ public class DemoJobHandler extends IJobHandler { logger.info("XXL-JOB, Hello World."); for (int i = 0; i < 10; i++) { - System.out.println(i); + logger.info("beat at:{}", i); TimeUnit.SECONDS.sleep(2); } return JobHandleStatus.SUCCESS;