fix: fix nacos service discovery. (#1752)
parent
f41fb6dd2f
commit
b356355d18
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Tencent is pleased to support the open source community by making spring-cloud-tencent available.
|
||||
*
|
||||
* Copyright (C) 2021 Tencent. All rights reserved.
|
||||
*
|
||||
* Licensed under the BSD 3-Clause License (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
* 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 com.tencent.cloud.polaris.eager.instrument.services;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.tencent.cloud.polaris.discovery.PolarisDiscoveryClient;
|
||||
import com.tencent.cloud.polaris.discovery.reactive.PolarisReactiveDiscoveryClient;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.SmartLifecycle;
|
||||
|
||||
public class ServicesEagerLoadSmartLifecycle implements SmartLifecycle {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ServicesEagerLoadSmartLifecycle.class);
|
||||
|
||||
private final ApplicationContext applicationContext;
|
||||
|
||||
private final PolarisDiscoveryClient polarisDiscoveryClient;
|
||||
|
||||
private final PolarisReactiveDiscoveryClient polarisReactiveDiscoveryClient;
|
||||
|
||||
public ServicesEagerLoadSmartLifecycle(ApplicationContext applicationContext, PolarisDiscoveryClient polarisDiscoveryClient,
|
||||
PolarisReactiveDiscoveryClient polarisReactiveDiscoveryClient) {
|
||||
this.applicationContext = applicationContext;
|
||||
this.polarisDiscoveryClient = polarisDiscoveryClient;
|
||||
this.polarisReactiveDiscoveryClient = polarisReactiveDiscoveryClient;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
LOG.info("services eager-load start");
|
||||
try {
|
||||
if (polarisDiscoveryClient != null) {
|
||||
List<String> servicesList = polarisDiscoveryClient.getServices();
|
||||
LOG.info("eager-load got services: {}", servicesList);
|
||||
}
|
||||
else if (polarisReactiveDiscoveryClient != null) {
|
||||
polarisReactiveDiscoveryClient.getServices().subscribe(services -> {
|
||||
LOG.info("eager-load got services: {}", services);
|
||||
});
|
||||
}
|
||||
else {
|
||||
LOG.warn("no discovery client found.");
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
LOG.debug("services eager-load failed.", e);
|
||||
}
|
||||
LOG.info("services eager-load end");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRunning() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPhase() {
|
||||
return 10;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue