Optimize hippo4j core configuration refresh

pull/246/head
chen.ma 2 years ago
parent 3b8c1cdc6a
commit c6d4158373

@ -138,21 +138,21 @@ public class DynamicThreadPoolCoreAutoConfiguration {
@ConditionalOnClass(name = NACOS_CONFIG_MANAGER_KEY)
@ConditionalOnProperty(prefix = BootstrapCoreProperties.PREFIX, name = "nacos.data-id")
public NacosCloudRefresherHandler nacosCloudRefresherHandler() {
return new NacosCloudRefresherHandler(bootstrapCoreProperties);
return new NacosCloudRefresherHandler();
}
@Bean
@ConditionalOnClass(name = APOLLO_CONFIG_KEY)
@ConditionalOnProperty(prefix = BootstrapCoreProperties.PREFIX, name = "apollo.namespace")
public ApolloRefresherHandler apolloRefresher() {
return new ApolloRefresherHandler(bootstrapCoreProperties);
return new ApolloRefresherHandler();
}
@Bean
@ConditionalOnClass(name = ZK_CONFIG_KEY)
@ConditionalOnProperty(prefix = BootstrapCoreProperties.PREFIX, name = "zookeeper.zk-connect-str")
public ZookeeperRefresherHandler zookeeperRefresher() {
return new ZookeeperRefresherHandler(bootstrapCoreProperties);
return new ZookeeperRefresherHandler();
}
@Bean

@ -44,10 +44,14 @@ public abstract class AbstractCoreThreadPoolDynamicRefresh implements ThreadPool
protected final ExecutorService dynamicRefreshExecutorService = ThreadPoolBuilder.builder().singlePool("client.dynamic.refresh").build();
public AbstractCoreThreadPoolDynamicRefresh() {
bootstrapCoreProperties = ApplicationContextHolder.getBean(BootstrapCoreProperties.class);
}
@Override
public void dynamicRefresh(String content) {
public void dynamicRefresh(String configContent) {
try {
Map<Object, Object> configInfo = ConfigParserHandler.getInstance().parseConfig(content, bootstrapCoreProperties.getConfigFileType());
Map<Object, Object> configInfo = ConfigParserHandler.getInstance().parseConfig(configContent, bootstrapCoreProperties.getConfigFileType());
BootstrapCoreProperties bindableCoreProperties = BootstrapCorePropertiesBinderAdapt.bootstrapCorePropertiesBinder(configInfo, bootstrapCoreProperties);
ApplicationContextHolder.getInstance().publishEvent(new Hippo4jCoreDynamicRefreshEvent(this, bindableCoreProperties));
} catch (Exception ex) {

@ -17,7 +17,6 @@
package cn.hippo4j.core.springboot.starter.refresher;
import cn.hippo4j.core.springboot.starter.config.BootstrapCoreProperties;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigChangeListener;
import com.ctrip.framework.apollo.ConfigFile;
@ -39,10 +38,6 @@ public class ApolloRefresherHandler extends AbstractCoreThreadPoolDynamicRefresh
@Value(APOLLO_PROPERTY)
private String namespace;
public ApolloRefresherHandler(BootstrapCoreProperties bootstrapCoreProperties) {
super(bootstrapCoreProperties);
}
@Override
public void afterPropertiesSet() {
String[] apolloNamespaces = this.namespace.split(",");

@ -18,7 +18,6 @@
package cn.hippo4j.core.springboot.starter.refresher;
import cn.hippo4j.common.config.ApplicationContextHolder;
import cn.hippo4j.core.springboot.starter.config.BootstrapCoreProperties;
import com.alibaba.cloud.nacos.NacosConfigManager;
import com.alibaba.nacos.api.config.listener.Listener;
import lombok.extern.slf4j.Slf4j;
@ -37,8 +36,7 @@ public class NacosCloudRefresherHandler extends AbstractCoreThreadPoolDynamicRef
private final NacosConfigManager nacosConfigManager;
public NacosCloudRefresherHandler(BootstrapCoreProperties bootstrapCoreProperties) {
super(bootstrapCoreProperties);
public NacosCloudRefresherHandler() {
nacosConfigManager = ApplicationContextHolder.getBean(NacosConfigManager.class);
}

@ -19,7 +19,6 @@ package cn.hippo4j.core.springboot.starter.refresher;
import cn.hippo4j.common.notify.ThreadPoolNotifyAlarm;
import cn.hippo4j.core.executor.manage.GlobalNotifyAlarmManage;
import cn.hippo4j.core.springboot.starter.config.BootstrapCoreProperties;
import com.google.common.base.Charsets;
import lombok.extern.slf4j.Slf4j;
import org.apache.curator.framework.CuratorFramework;
@ -45,10 +44,6 @@ public class ZookeeperRefresherHandler extends AbstractCoreThreadPoolDynamicRefr
private CuratorFramework curatorFramework;
public ZookeeperRefresherHandler(BootstrapCoreProperties bootstrapCoreProperties) {
super(bootstrapCoreProperties);
}
@Override
public void afterPropertiesSet() {
Map<String, String> zkConfigs = bootstrapCoreProperties.getZookeeper();

@ -124,7 +124,10 @@ public class ExecutorsListener implements ApplicationListener<Hippo4jCoreDynamic
*/
private boolean checkConsistency(String threadPoolId, ExecutorProperties properties) {
ExecutorProperties beforeProperties = GlobalCoreThreadPoolManage.getProperties(properties.getThreadPoolId());
ThreadPoolExecutor executor = GlobalThreadPoolManage.getExecutorService(threadPoolId).getExecutor();
ThreadPoolExecutor executor = GlobalThreadPoolManage.getExecutor(threadPoolId);
if (executor == null) {
return false;
}
boolean result = !Objects.equals(beforeProperties.getCorePoolSize(), properties.getCorePoolSize())
|| !Objects.equals(beforeProperties.getMaximumPoolSize(), properties.getMaximumPoolSize())
|| !Objects.equals(beforeProperties.getAllowCoreThreadTimeOut(), properties.getAllowCoreThreadTimeOut())

Loading…
Cancel
Save