diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ComponentInitializer.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ComponentInitializer.java index 5fffb6b30..ea3d592dc 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ComponentInitializer.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ComponentInitializer.java @@ -6,8 +6,10 @@ import com.yomahub.liteflow.annotation.LiteflowRetry; import com.yomahub.liteflow.annotation.util.AnnoUtil; import com.yomahub.liteflow.entity.executor.NodeExecutor; import com.yomahub.liteflow.enums.NodeTypeEnum; +import com.yomahub.liteflow.monitor.MonitorBus; import com.yomahub.liteflow.property.LiteflowConfig; import com.yomahub.liteflow.property.LiteflowConfigGetter; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import com.yomahub.liteflow.spi.holder.LiteflowComponentSupportHolder; /** @@ -31,6 +33,12 @@ public class ComponentInitializer { nodeComponent.setSelf(nodeComponent); nodeComponent.setType(type); + //设置MonitorBus,如果没有就不注入 + MonitorBus monitorBus = ContextAwareHolder.loadContextAware().getBean(MonitorBus.class); + if(ObjectUtil.isNotNull(monitorBus)){ + nodeComponent.setMonitorBus(monitorBus); + } + //先取传进来的name值(配置文件中配置的),再看有没有配置@LiteflowComponent标注 //@LiteflowComponent标注只在spring体系下生效,这里用了spi机制取到相应环境下的实现类 nodeComponent.setName(desc); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java index 0a18b494a..5beb94ecc 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java @@ -69,7 +69,6 @@ public abstract class NodeComponent{ private final TransmittableThreadLocal isEndTL = new TransmittableThreadLocal<>(); public NodeComponent() { - monitorBus = ContextAwareHolder.loadContextAware().getBean(MonitorBus.class); } public void execute() throws Exception{ @@ -231,4 +230,12 @@ public abstract class NodeComponent{ public void setCondNodeMap(Map condNodeMap){ this.condNodeMapTL.set(condNodeMap); } + + public MonitorBus getMonitorBus() { + return monitorBus; + } + + public void setMonitorBus(MonitorBus monitorBus) { + this.monitorBus = monitorBus; + } } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/monitor/MonitorBus.java b/liteflow-core/src/main/java/com/yomahub/liteflow/monitor/MonitorBus.java index ab8436495..30ae712ed 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/monitor/MonitorBus.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/monitor/MonitorBus.java @@ -96,4 +96,8 @@ public class MonitorBus { public void setLiteflowConfig(LiteflowConfig liteflowConfig) { this.liteflowConfig = liteflowConfig; } + + public void closeScheduler(){ + this.printLogScheduler.shutdown(); + } }