Commit 44374fd8 by 王祖波

Merge branch 'feature-recommend' into 'master'

Feature recommend

See merge request !2812
parents 73db289c 5fcfde8a
......@@ -13,11 +13,17 @@ import com.alibaba.hologres.client.HoloClient;
import com.alibaba.hologres.client.HoloConfig;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
import com.ctrip.framework.apollo.model.ConfigChange;
import com.ctrip.framework.apollo.model.ConfigChangeEvent;
import com.gic.commons.util.TraceIdUtil;
import com.gic.haoban.manage.service.util.ApolloUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.Executors;
......@@ -38,6 +44,26 @@ public class HoloDataSource implements InitializingBean, DisposableBean {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
public static final String HOLO_CONNECTIONMAXIDLEMS = "holo.connectionMaxIdleMs";
@PostConstruct
public void initConfig() {
Config config = ConfigService.getAppConfig();
config.addChangeListener(this::refresh);
}
private void refresh(ConfigChangeEvent changeEvent) {
if (!StringUtils.equals(changeEvent.getNamespace(), "application")) {
return;
}
TraceIdUtil.traceBegin(TraceIdUtil.EntranceType.QUARTZ);
log.info("监听刷新holo");
ConfigChange connectionMaxIdleMsChange = changeEvent.getChange(HOLO_CONNECTIONMAXIDLEMS);
if ((connectionMaxIdleMsChange != null && connectionMaxIdleMsChange.getNewValue() != null)) {
init();
}
TraceIdUtil.traceEnd();
}
public synchronized void init() {
try {
......@@ -55,7 +81,7 @@ public class HoloDataSource implements InitializingBean, DisposableBean {
holoConfig.setUsername(holoUserName);
holoConfig.setPassword(holoPassword);
log.info("holo链接初始化,holoUrl:{},holoUserName:{},holoPassword:{}",holoUrl,holoUserName,holoPassword);
holoConfig.setConnectionMaxIdleMs(13000);
holoConfig.setConnectionMaxIdleMs(ApolloUtils.connectionMaxIdleMs());
HoloClient newClient = new HoloClient(holoConfig);
newClient.setAsyncCommit(false);
if (this.client != null) {
......
......@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.util;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
import com.gic.haoban.manage.service.dao.mapper.content.holo.HoloDataSource;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -92,4 +93,14 @@ public class ApolloUtils {
String maximumPoolSize = config.getProperty("combinedMaximumPoolSize", "40");
return Integer.parseInt(maximumPoolSize);
}
/**
* holo连接池最大空闲时间
* @return
*/
public static Integer connectionMaxIdleMs() {
Config config = ConfigService.getAppConfig();
String connectionMaxIdleMs = config.getProperty(HoloDataSource.HOLO_CONNECTIONMAXIDLEMS, "9000");
return Integer.parseInt(connectionMaxIdleMs);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment