From 266593318022d7e9c9fbce0ceb95774de6b73595 Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Sun, 29 Mar 2020 04:21:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=99=A8=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=87=92=E5=8A=A0=E8=BD=BD=E7=9A=84Bean=E8=A2=AB?= =?UTF-8?q?=E6=8F=90=E5=89=8D=E5=88=9D=E5=A7=8B=E5=8C=96=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/XXL-JOB官方文档.md | 13 +++++++------ .../core/executor/impl/XxlJobSpringExecutor.java | 14 +++++++++----- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index 5ae8508a..286c062e 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -1728,12 +1728,13 @@ method: get 或 post data: post-data ``` - 15、执行器注册逻辑优化:新增配置项 ”注册地址 / xxl.job.executor.address“,优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。 -- 16、[迭代中]自定义失败重试时间间隔; -- 17、[迭代中]任务复制功能;点击复制是弹出新建任务弹框,并初始化被复制任务信息; -- 18、[迭代中]新增执行器描述、任务描述属性; -- 19、[迭代中]任务执行一次的时候指定IP; -- 20、[迭代中]任务日志支持单个清理和状态转移,方便触发子任务; -- 21、[迭代中]任务结果丢失处理:针对长期处于运行中的任务(设置过期时间时,运行超过"过期时间+1min";未设置超时时间时,运行超过"30min"),主动检测该执行器是否在线,如果不在线主动标记失败; +- 16、执行器初始化逻辑优化:修复懒加载的Bean被提前初始化问题; +- 17、[迭代中]自定义失败重试时间间隔; +- 18、[迭代中]任务复制功能;点击复制是弹出新建任务弹框,并初始化被复制任务信息; +- 19、[迭代中]新增执行器描述、任务描述属性; +- 20、[迭代中]任务执行一次的时候指定IP; +- 21、[迭代中]任务日志支持单个清理和状态转移,方便触发子任务; +- 22、[迭代中]任务结果丢失处理:针对长期处于运行中的任务(设置过期时间时,运行超过"过期时间+1min";未设置超时时间时,运行超过"30min"),主动检测该执行器是否在线,如果不在线主动标记失败; ### TODO LIST diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/executor/impl/XxlJobSpringExecutor.java b/xxl-job-core/src/main/java/com/xxl/job/core/executor/impl/XxlJobSpringExecutor.java index f06d290e..33b5a6b4 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/executor/impl/XxlJobSpringExecutor.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/executor/impl/XxlJobSpringExecutor.java @@ -9,7 +9,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.MethodIntrospector; @@ -24,13 +24,13 @@ import java.util.Map; * * @author xuxueli 2018-11-01 09:24:52 */ -public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationContextAware, InitializingBean, DisposableBean { +public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationContextAware, SmartInitializingSingleton, DisposableBean { private static final Logger logger = LoggerFactory.getLogger(XxlJobSpringExecutor.class); // start @Override - public void afterPropertiesSet() throws Exception { + public void afterSingletonsInstantiated() { // init JobHandler Repository /*initJobHandlerRepository(applicationContext);*/ @@ -42,7 +42,11 @@ public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationC GlueFactory.refreshInstance(1); // super start - super.start(); + try { + super.start(); + } catch (Exception e) { + throw new RuntimeException(e); + } } // destroy @@ -93,7 +97,7 @@ public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationC } }); } catch (Throwable ex) { - logger.debug("xxl-job method-jobhandler resolve error for bean[" + beanDefinitionName + "].", ex); + logger.error("xxl-job method-jobhandler resolve error for bean[" + beanDefinitionName + "].", ex); } if (annotatedMethods==null || annotatedMethods.isEmpty()) { continue;