优化MonitorBus的设值时机

This commit is contained in:
bryan31
2022-02-24 18:39:21 +08:00
parent 7a02e58261
commit db826d0d07
3 changed files with 20 additions and 1 deletions

View File

@@ -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);

View File

@@ -69,7 +69,6 @@ public abstract class NodeComponent{
private final TransmittableThreadLocal<Boolean> 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<String, Executable> condNodeMap){
this.condNodeMapTL.set(condNodeMap);
}
public MonitorBus getMonitorBus() {
return monitorBus;
}
public void setMonitorBus(MonitorBus monitorBus) {
this.monitorBus = monitorBus;
}
}

View File

@@ -96,4 +96,8 @@ public class MonitorBus {
public void setLiteflowConfig(LiteflowConfig liteflowConfig) {
this.liteflowConfig = liteflowConfig;
}
public void closeScheduler(){
this.printLogScheduler.shutdown();
}
}