|
package com.ipu.logicflow.server;
import com.ai.ipu.basic.util.IpuBaseException;
import com.ai.ipu.nacos.INacosService;
import com.ai.ipu.restful.boot.IpuRestApplication;
import com.ai.ipu.restful.spring.SpringBeanUtil;
import com.ipu.logicflow.server.biz.logic.listener.FlowLogicListener;
import com.ipu.logicflow.server.biz.logic.listener.FlowModelListener;
import com.ipu.logicflow.server.util.LogicFlowConfig;
/**
* <p>desc: 逻辑编排服务启动类 </p>
* <p>date: 2021/11/25 14:42 </p>
*
* @author nuosi fsofs@163.com
* @version v1.0.0
*/
public class LogicflowServerStart {
public static void main(String[] args) {
// 初始化加载服务配置
LogicFlowConfig.init();
// 注册异常信息编码配置。
registerExceptionCode();
// 启动服务
IpuRestApplication.start(args);
//注册nacos配置中心的监听
registerNacosListener();
//从nacos配置中心拉取已有配置到本地
pullConfigFromNacos();
}
private static void registerExceptionCode(){
// 热部署会多次加载,因此需要捕获并忽略异常
String exceptionMessagesConfig = "exception_messages";
IpuBaseException.registerCode(exceptionMessagesConfig);
}
private static void registerNacosListener(){
try {
INacosService service = SpringBeanUtil.getBean(INacosService.class);
//服务逻辑流配置的监听
service.addListener(LogicFlowConfig.FLOW_LOGIC,"DEFAULT_GROUP",new FlowLogicListener());
//Model配置的监听
service.addListener(LogicFlowConfig.FLOW_MODEL,"DEFAULT_GROUP",new FlowModelListener());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void pullConfigFromNacos(){
try {
INacosService service = SpringBeanUtil.getBean(INacosService.class);
//拉取服务逻辑流配置
String flowConfig = service.pullFromServer(LogicFlowConfig.FLOW_LOGIC,"DEFAULT_GROUP",0);
LogicFlowConfig.registerLogicFlow(flowConfig);
//拉取Model配置
String modelConfig = service.pullFromServer(LogicFlowConfig.FLOW_MODEL,"DEFAULT_GROUP",0);
LogicFlowConfig.registerLogicModel(modelConfig);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
|