Skip to content

Commit 7c53d40

Browse files
committed
适配maven中央库的标准
1 parent 7579b72 commit 7c53d40

File tree

4 files changed

+44
-59
lines changed

4 files changed

+44
-59
lines changed
Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package cn.springcloud.gray;
22

3-
3+
import cn.springcloud.gray.client.config.properties.GrayLoadProperties;
44
import cn.springcloud.gray.decision.GrayDecisionFactoryKeeper;
55
import cn.springcloud.gray.model.GrayInstance;
66
import cn.springcloud.gray.model.GrayService;
@@ -16,46 +16,72 @@
1616
public class DefaultGrayManager extends AbstractCommunicableGrayManager {
1717

1818
private Timer updateTimer = new Timer("Gray-Update-Timer", true);
19+
private GrayLoadProperties grayLoadProperties;
1920

20-
public DefaultGrayManager(GrayClientConfig grayClientConfig, GrayDecisionFactoryKeeper grayDecisionFactoryKeeper,
21-
List<RequestInterceptor> requestInterceptors) {
21+
public DefaultGrayManager(
22+
GrayClientConfig grayClientConfig,
23+
GrayLoadProperties grayLoadProperties,
24+
GrayDecisionFactoryKeeper grayDecisionFactoryKeeper,
25+
List<RequestInterceptor> requestInterceptors) {
2226
super(grayClientConfig, grayDecisionFactoryKeeper, requestInterceptors);
27+
this.grayLoadProperties = grayLoadProperties;
28+
29+
2330
openForWork();
2431
}
2532

26-
2733
public void openForWork() {
2834
log.info("拉取灰度列表");
2935
doUpdate();
30-
updateTimer.schedule(new UpdateTask(),
31-
getGrayClientConfig().getServiceUpdateIntervalTimerInMs(),
32-
getGrayClientConfig().getServiceUpdateIntervalTimerInMs());
36+
int timerMs = getGrayClientConfig().getServiceUpdateIntervalTimerInMs();
37+
if (timerMs > 0) {
38+
updateTimer.schedule(
39+
new UpdateTask(),
40+
getGrayClientConfig().getServiceUpdateIntervalTimerInMs(),
41+
getGrayClientConfig().getServiceUpdateIntervalTimerInMs());
42+
}
3343
}
3444

35-
3645
private void doUpdate() {
3746
try {
3847
log.debug("更新灰度服务列表...");
39-
4048
List<GrayInstance> grayInstances = getGrayInformationClient().allGrayInstances();
4149
Map<String, GrayService> grayServices = new ConcurrentHashMap<>();
42-
grayInstances.forEach(instance -> {
43-
updateGrayInstance(grayServices, instance);
44-
});
50+
grayInstances.forEach(
51+
instance -> {
52+
updateGrayInstance(grayServices, instance);
53+
});
54+
joinLoadedGrays(grayServices);
4555
this.grayServices = grayServices;
4656
} catch (Exception e) {
4757
log.error("更新灰度服务列表失败", e);
4858
}
4959
}
5060

5161

62+
/**
63+
* 加入配置文件中的灰度实例,但不会覆盖列表中的信息
64+
*
65+
* @param grayServices 更新的灰度列表
66+
*/
67+
private void joinLoadedGrays(Map<String, GrayService> grayServices) {
68+
if (grayLoadProperties != null && grayLoadProperties.isEnabled()) {
69+
grayLoadProperties.getGrayInstances().forEach(
70+
instance -> {
71+
if (grayServices.containsKey(instance.getServiceId())
72+
|| grayServices.get(instance.getServiceId())
73+
.getGrayInstance(instance.getInstanceId()) != null) {
74+
updateGrayInstance(grayServices, instance);
75+
}
76+
});
77+
}
78+
}
79+
5280
class UpdateTask extends TimerTask {
5381

5482
@Override
5583
public void run() {
5684
doUpdate();
5785
}
5886
}
59-
60-
6187
}

spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public interface GrayClientConfig {
3434

3535

3636
/**
37-
* 更新灰度列表的时间间隔(ms)
37+
* 更新灰度列表的时间间隔(ms),小于等于0将不会开启定时轮询
3838
*
3939
* @return 返回更新灰度列表的时间间隔(ms)
4040
*/

spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import cn.springcloud.gray.*;
44
import cn.springcloud.gray.client.GrayClientInitializingDestroyBean;
55
import cn.springcloud.gray.client.config.properties.GrayClientProperties;
6+
import cn.springcloud.gray.client.config.properties.GrayLoadProperties;
67
import cn.springcloud.gray.client.config.properties.GrayRequestProperties;
78
import cn.springcloud.gray.decision.GrayDecisionFactoryKeeper;
89
import cn.springcloud.gray.request.RequestLocalStorage;
@@ -30,9 +31,9 @@ public class GrayClientAutoConfiguration {
3031

3132
@Bean
3233
@ConditionalOnMissingBean
33-
public GrayManager grayManager(GrayDecisionFactoryKeeper grayDecisionFactoryKeeper,
34+
public GrayManager grayManager(GrayLoadProperties grayLoadProperties, GrayDecisionFactoryKeeper grayDecisionFactoryKeeper,
3435
@Autowired(required = false) List<RequestInterceptor> requestInterceptors) {
35-
return new DefaultGrayManager(grayClientProperties, grayDecisionFactoryKeeper, requestInterceptors);
36+
return new DefaultGrayManager(grayClientProperties, grayLoadProperties, grayDecisionFactoryKeeper, requestInterceptors);
3637
}
3738

3839

spring-cloud-gray-client/src/main/java/cn/springcloud/gray/web/interceptor/GrayTrackInterceptor.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

0 commit comments

Comments
 (0)