我有一个api供kubernetes调用,检测服务是否可用,在这个api中,首先调用一个接口获取其他服务的主机,接口返回一个流量,如果结果为空api返回服务\u unavailable other return ok,我的当前代码如下:
@GetMapping(value = "/gateway/readiness")
public Mono<Long> readiness(ServerHttpResponse response) {
Flux<Map<String, List<String>>> hosts = hostProvider.getHosts();
List<String> hostProviders = new ArrayList<>();
// the below code has a warning: Calling subscribe in a non-blocking scope
hosts.subscribe(new Consumer<Map<String, List<String>>>() {
@Override
public void accept(Map<String, List<String>> stringListMap) {
hostProviders.addAll(stringListMap.keySet());
}
});
if (hostProviders.isEmpty()) {
response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE);
}
return routeLocator.getRoutes().count();
}
有什么办法吗?
2条答案
按热度按时间myzjeezk1#
请尝试以下操作:
7vux5j2d2#
你应该像这样重写你的代码: