diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/api/ThreadPoolInitRefresh.java b/hippo4j-common/src/main/java/cn/hippo4j/common/api/ThreadPoolInitRefresh.java new file mode 100644 index 00000000..e3b752ea --- /dev/null +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/api/ThreadPoolInitRefresh.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.api; + +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; + +/** + * when init thread-pool dynamic refresh. + */ +public interface ThreadPoolInitRefresh extends ApplicationRunner { + + /** + * Initializes the thread pool after system startup + * + * @param context new properties + */ + void initRefresh(String context); + + /** + * get from the Configuration center + * + * @return new properties + * @throws Exception exception + */ + String getProperties() throws Exception; + + @Override + default void run(ApplicationArguments args) throws Exception { + String properties = getProperties(); + if (properties == null) { + return; + } + initRefresh(properties); + } +} diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java index bf545487..ba5933fc 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java @@ -18,6 +18,7 @@ package cn.hippo4j.config.springboot.starter.refresher; import cn.hippo4j.common.api.ThreadPoolDynamicRefresh; +import cn.hippo4j.common.api.ThreadPoolInitRefresh; import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; @@ -37,7 +38,11 @@ import java.util.concurrent.ExecutorService; */ @Slf4j @RequiredArgsConstructor -public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPoolDynamicRefresh, InitializingBean { +public abstract class AbstractConfigThreadPoolDynamicRefresh + implements + ThreadPoolDynamicRefresh, + ThreadPoolInitRefresh, + InitializingBean { protected final BootstrapConfigProperties bootstrapConfigProperties; @@ -47,6 +52,11 @@ public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPo bootstrapConfigProperties = ApplicationContextHolder.getBean(BootstrapConfigProperties.class); } + @Override + public void initRefresh(String context) { + dynamicRefresh(context); + } + @Override public void dynamicRefresh(String configContent) { dynamicRefresh(configContent, null); diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java index 63087832..552a1f69 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java @@ -56,7 +56,7 @@ public class AdapterExecutorsRefreshListener extends AbstractRefreshListener