private ServiceInfo getServiceInfoByVertx(Consumer<ServiceInfoResult> consumer, Function<ServiceInfo,Boolean> criteria) {
// TODO add caching mechanism with TTL to reduce
vertx.eventBus().send(GlobalKeyHolder.SERVICE_REGISTRY_GET, "xyz", (AsyncResultHandler<Message<byte[]>>) h ->
{
if (h.succeeded()) {
final List<ServiceInfo> serviceInfos = getServiceInfoFromMessage(h).filter(info -> criteria.apply(info)).collect(Collectors.toList());
if(!serviceInfos.isEmpty()){
consumer.accept(new ServiceInfoResult(serviceInfos.stream(),h.succeeded(),h.cause()));
}else {
consumer.accept(new ServiceInfoResult(serviceInfos.stream(),false,new ServiceNotFoundException("selected service not found")));
}
} else {
consumer.accept(new ServiceInfoResult(Stream.<ServiceInfo>empty(),h.succeeded(),h.cause()));
}
}
);
return null;
}
ServiceDiscovery.java 文件源码
java
阅读 26
收藏 0
点赞 0
评论 0
项目:vert.x-microservice
作者:
评论列表
文章目录