diff --git a/example/pom.xml b/example/pom.xml
index 510ad77c5..29ec3d492 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -38,7 +38,7 @@
com.byteblogs
x-retry-client-starter
- 0.0.4.1
+ 0.0.4.2-SNAPSHOT
com.baomidou
diff --git a/x-retry-client-core/src/main/java/com/x/retry/client/core/cache/GroupVersionCache.java b/x-retry-client-core/src/main/java/com/x/retry/client/core/cache/GroupVersionCache.java
index d16296319..bb3a1b6fc 100644
--- a/x-retry-client-core/src/main/java/com/x/retry/client/core/cache/GroupVersionCache.java
+++ b/x-retry-client-core/src/main/java/com/x/retry/client/core/cache/GroupVersionCache.java
@@ -22,7 +22,7 @@ import java.util.Set;
* @date : 2022-05-02 21:06
*/
@Component
-@Order()
+@Order
public class GroupVersionCache implements Lifecycle {
public static ConfigDTO configDTO;
diff --git a/x-retry-client-core/src/main/java/com/x/retry/client/core/config/XRetryProperties.java b/x-retry-client-core/src/main/java/com/x/retry/client/core/config/XRetryProperties.java
index 991b27fb7..814700a24 100644
--- a/x-retry-client-core/src/main/java/com/x/retry/client/core/config/XRetryProperties.java
+++ b/x-retry-client-core/src/main/java/com/x/retry/client/core/config/XRetryProperties.java
@@ -1,11 +1,15 @@
package com.x.retry.client.core.config;
+import com.x.retry.common.core.context.SpringContext;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
+import java.util.Objects;
+
/**
* @author: www.byteblogs.com
* @date : 2022-03-04 15:53
@@ -19,7 +23,7 @@ public class XRetryProperties {
/**
* 服务端对应的group
*/
- private static String group;
+ private String group;
/**
* 服务端配置
@@ -28,15 +32,19 @@ public class XRetryProperties {
@Data
public static class ServerConfig {
+ /**
+ * 服务端的地址,若服务端集群部署则此处配置域名
+ */
private String host = "127.0.0.1";
+
+ /**
+ * 服务端netty的端口号
+ */
private int port = 1788;
}
- public static void setGroup(String group) {
- XRetryProperties.group = group;
- }
-
public static String getGroup() {
- return group;
+ XRetryProperties properties = SpringContext.applicationContext.getBean(XRetryProperties.class);
+ return Objects.requireNonNull(properties).group;
}
}
diff --git a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/EnableXRetry.java b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/EnableXRetry.java
index 5bbfd0fc2..8ebd63ce0 100644
--- a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/EnableXRetry.java
+++ b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/EnableXRetry.java
@@ -11,7 +11,7 @@ import java.lang.annotation.*;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
-@Import({XRetryClientConfig.class, XRetryClientsRegistrar.class})
+@Import(XRetryClientsRegistrar.class)
public @interface EnableXRetry {
String group();
diff --git a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientAutoConfiguration.java b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientAutoConfiguration.java
new file mode 100644
index 000000000..6bc9fd1e1
--- /dev/null
+++ b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientAutoConfiguration.java
@@ -0,0 +1,12 @@
+package com.x.retry.client.starter;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ComponentScan("com.x.retry.client.core")
+@ConditionalOnProperty(prefix = "x-retry", name = "enabled", havingValue = "true")
+public class XRetryClientAutoConfiguration {
+
+}
diff --git a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientConfig.java b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientConfig.java
deleted file mode 100644
index a1f1219f0..000000000
--- a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientConfig.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.x.retry.client.starter;
-
-import com.x.retry.client.core.config.XRetryProperties;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@ComponentScan("com.x.retry.client.core")
-public class XRetryClientConfig {
-
- @Autowired
- public void setRetryProperties(XRetryProperties retryProperties) {
- XRetryProperties.setGroup(XRetryClientsRegistrar.GROUP);
- }
-}
diff --git a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientsRegistrar.java b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientsRegistrar.java
index 652b62fdf..5af5ada4f 100644
--- a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientsRegistrar.java
+++ b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientsRegistrar.java
@@ -1,7 +1,10 @@
package com.x.retry.client.starter;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
+import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
+import org.springframework.core.env.Environment;
+import org.springframework.core.env.StandardEnvironment;
import org.springframework.core.type.AnnotationMetadata;
import java.util.Map;
@@ -10,13 +13,22 @@ import java.util.Map;
* @author: www.byteblogs.com
* @date : 2022-03-04 18:44
*/
-public class XRetryClientsRegistrar implements ImportBeanDefinitionRegistrar {
+public class XRetryClientsRegistrar implements ImportBeanDefinitionRegistrar, EnvironmentAware {
- public static String GROUP = "";
+ private StandardEnvironment standardEnvironment;
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
- Map attrs = importingClassMetadata.getAnnotationAttributes(EnableXRetry.class.getName());
- XRetryClientsRegistrar.GROUP = (String) attrs.get("group");
+ Map attrs = importingClassMetadata.getAnnotationAttributes(EnableXRetry.class.getName());
+ Map systemEnvironment = standardEnvironment.getSystemProperties();
+ systemEnvironment.put("x-retry.group", (String) attrs.get("group"));
+ }
+
+ @Override
+ public void setEnvironment(Environment environment) {
+ StandardEnvironment standardEnvironment = (StandardEnvironment) environment;
+ this.standardEnvironment = standardEnvironment;
+ Map systemEnvironment = standardEnvironment.getSystemProperties();
+ systemEnvironment.put("x-retry.enabled", true);
}
}
diff --git a/x-retry-client-starter/src/main/resources/META-INF/spring.factories b/x-retry-client-starter/src/main/resources/META-INF/spring.factories
index f39a6496f..00c846097 100644
--- a/x-retry-client-starter/src/main/resources/META-INF/spring.factories
+++ b/x-retry-client-starter/src/main/resources/META-INF/spring.factories
@@ -1,2 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- com.x.retry.client.starter.XRetryClientConfig
\ No newline at end of file
+ com.x.retry.client.starter.XRetryClientAutoConfiguration
diff --git a/x-retry-server/src/main/java/com/x/retry/server/config/ShedlockConfig.java b/x-retry-server/src/main/java/com/x/retry/server/config/ShedlockConfig.java
index 9200ce18c..d55710ea2 100644
--- a/x-retry-server/src/main/java/com/x/retry/server/config/ShedlockConfig.java
+++ b/x-retry-server/src/main/java/com/x/retry/server/config/ShedlockConfig.java
@@ -35,7 +35,7 @@ public class ShedlockConfig {
@Bean
public TaskScheduler scheduledExecutorService() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
- scheduler.setPoolSize(8);
+ scheduler.setPoolSize(2);
scheduler.setThreadNamePrefix("x-retry-scheduled-thread-");
return scheduler;
}