82 lines
2.8 KiB
Java
82 lines
2.8 KiB
Java
package com.zdjizhi.common;
|
|
|
|
import cn.hutool.log.Log;
|
|
import cn.hutool.log.LogFactory;
|
|
import com.alibaba.nacos.api.config.ConfigService;
|
|
import com.alibaba.nacos.api.config.listener.Listener;
|
|
import com.alibaba.nacos.api.exception.NacosException;
|
|
import com.geedgenetworks.utils.StringUtil;
|
|
import com.zdjizhi.tools.connections.nacos.NacosConnection;
|
|
import com.zdjizhi.tools.general.ConfigurationsUtils;
|
|
|
|
import java.io.IOException;
|
|
import java.io.StringReader;
|
|
import java.util.Properties;
|
|
import java.util.concurrent.Executor;
|
|
|
|
/**
|
|
* @author qidaijie
|
|
* @Package com.zdjizhi.common
|
|
* @Description:
|
|
* @date 2023/7/2811:00
|
|
*/
|
|
public class CommonConfig {
|
|
private static final Log logger = LogFactory.get();
|
|
|
|
private static final String dataId = "olap_platform.properties";
|
|
|
|
private static final Properties configProperties;
|
|
|
|
public static String KNOWLEDGEBASE_TYPE_LIST;
|
|
public static String KNOWLEDGEBASE_NAME_LIST;
|
|
public static Boolean SCHEMA_UPDATE_ENABLED;
|
|
|
|
static {
|
|
configProperties = new Properties();
|
|
NacosConnection nacosConnection = new NacosConnection();
|
|
ConfigService configService = nacosConnection.getPublicService();
|
|
try {
|
|
String group = FlowWriteConfig.NACOS_PUBLIC_GROUP;
|
|
String config = configService.getConfigAndSignListener(dataId, group, FlowWriteConfig.NACOS_CONNECTION_TIMEOUT, new Listener() {
|
|
@Override
|
|
public Executor getExecutor() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void receiveConfigInfo(String configInfo) {
|
|
if (StringUtil.isNotBlank(configInfo)) {
|
|
logger.info("Reload the common config when it changes.");
|
|
clearProperties();
|
|
updateConfigProperties(configInfo);
|
|
}
|
|
}
|
|
});
|
|
|
|
if (StringUtil.isNotBlank(config)) {
|
|
updateConfigProperties(config);
|
|
}
|
|
|
|
} catch (NacosException e) {
|
|
logger.error("Get common config from Nacos error,The exception message is :{}" + e);
|
|
}
|
|
}
|
|
|
|
|
|
private static void updateConfigProperties(String config) {
|
|
try {
|
|
configProperties.load(new StringReader(config));
|
|
KNOWLEDGEBASE_TYPE_LIST = ConfigurationsUtils.getStringProperty(configProperties, "etl.knowledgebase.type.list");
|
|
KNOWLEDGEBASE_NAME_LIST = ConfigurationsUtils.getStringProperty(configProperties, "etl.knowledgebase.name.list");
|
|
SCHEMA_UPDATE_ENABLED = ConfigurationsUtils.getBooleanProperty(configProperties, "etl.schema.update.enabled");
|
|
} catch (IOException e) {
|
|
logger.error("IOException:{}", e);
|
|
}
|
|
}
|
|
|
|
private static void clearProperties() {
|
|
configProperties.clear();
|
|
}
|
|
|
|
}
|