public void onServerInstanceDisconnected(@Observes ServerInstanceDisconnected serverInstanceDisconnected) { ServerInstanceKey serverInstanceKey = serverInstancesById.get(serverInstanceDisconnected.getServerInstanceId()); if (serverInstanceKey != null) { Iterator<Map.Entry<String, KieServicesClient>> iterator = serverTemplatesClients.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, KieServicesClient> entry = iterator.next(); if (entry.getKey().startsWith(serverInstanceKey.getServerTemplateId())) { KieServicesClient client = entry.getValue(); if (client != null) { LoadBalancer loadBalancer = ((AbstractKieServicesClientImpl) client).getLoadBalancer(); loadBalancer.markAsFailed(serverInstanceKey.getUrl()); logger.debug("Server instance {} for server template {} removed from client thus won't be used for operations", serverInstanceKey.getUrl(), serverInstanceKey.getServerTemplateId()); } logger.debug("KieServerClient load balancer updated for server template {}", entry.getKey()); } } serverInstancesById.remove(serverInstanceKey.getServerInstanceId()); // update admin client KieServicesClient adminClient = adminClients.get(serverInstanceKey.getServerTemplateId()); if (adminClient != null) { LoadBalancer loadBalancer = ((AbstractKieServicesClientImpl) adminClient).getLoadBalancer(); loadBalancer.markAsFailed(serverInstanceKey.getUrl()); logger.debug("Server instance {} for server template {} removed from client thus won't be used for operations", serverInstanceKey.getUrl(), serverInstanceKey.getServerTemplateId()); } } }
public void onServerInstanceDisconnected(@Observes ServerInstanceDisconnected serverInstanceDisconnected) { ServerInstanceKey serverInstanceKey = serverInstancesById.get(serverInstanceDisconnected.getServerInstanceId()); if (serverInstanceKey != null) { serverTemplatesClients.computeIfPresent(serverInstanceKey.getServerTemplateId(), (serverTemplateId, clients) -> { clients.forEach((key, client) -> { LoadBalancer loadBalancer = ((AbstractKieServicesClientImpl) client).getLoadBalancer(); loadBalancer.markAsFailed(serverInstanceKey.getUrl()); logger.debug("Server instance '{}' for server template {} removed from client thus won't be used for operations", serverInstanceKey.getUrl(), serverInstanceKey.getServerTemplateId()); logger.debug("KieServerClient load balancer updated for server template {}", serverTemplateId.equals(SERVER_TEMPLATE_KEY) ? serverInstanceKey.getServerTemplateId() : serverTemplateId); }); return clients; }); serverInstancesById.remove(serverInstanceKey.getServerInstanceId()); // update admin client KieServicesClient adminClient = adminClients.get(serverInstanceKey.getServerTemplateId()); if (adminClient != null) { LoadBalancer loadBalancer = ((AbstractKieServicesClientImpl) adminClient).getLoadBalancer(); loadBalancer.markAsFailed(serverInstanceKey.getUrl()); logger.debug("Server instance {} for server template {} removed from client thus won't be used for operations", serverInstanceKey.getUrl(), serverInstanceKey.getServerTemplateId()); } } }