qbit/core/src/main/java/io/advantageous/qbit/proxy/ProxyServiceImpl.java
private void checkClient() {

        try {

            /** If the errorCount is greater than 0, make sure we are still connected. */
            if (errorCount.get() > 0) {
                errorCount.set(0);
                if (backendServiceHttpClient == null || backendServiceHttpClient.isClosed()) {

                    if (backendServiceHttpClient != null) {
                        try {
                            backendServiceHttpClient.stop();
                        } catch (Exception ex) {
                            logger.debug("Was unable to stop the client connection", ex);
                        }
                    }
                    backendServiceHttpClient = httpClientBuilder.buildAndStart();
                    lastHttpClientStart = time;
                }
            }

            /** If the ping builder is present, use it to ping the service. */
            if (pingBuilder.isPresent()) {

                if (backendServiceHttpClient != null) {
                    pingBuilder.get().setBinaryReceiver((code, contentType, body) -> {
                        if (code >= 200 && code < 299) {
                            pingCount.incrementAndGet();
                        } else {
                            errorCount.incrementAndGet();
                        }

                    }).setErrorHandler(e -> {
                        logger.error("Error doing ping operation", e);
                        errorCount.incrementAndGet();
                    });

                    final HttpRequest httpRequest = pingBuilder.get().build();

                    backendServiceHttpClient.sendHttpRequest(httpRequest);
                }
            }

        } catch (Exception ex) {
            errorHandler.accept(ex);
            logger.error("Unable to check connection");
        }

    }
private void checkClient() {

        try {

            /** If the errorCount is greater than 0, make sure we are still connected. */
            if (errorCount.get() > 0) {
                errorCount.set(0);
                if (backendServiceHttpClient == null || backendServiceHttpClient.isClosed()) {

                    if (backendServiceHttpClient != null) {
                        try {
                            backendServiceHttpClient.stop();
                        } catch (Exception ex) {
                            logger.debug("Was unable to stop the client connection", ex);
                        }
                    }
                    backendServiceHttpClient = httpClientBuilder.buildAndStart();
                    lastHttpClientStart = time;
                }
            }

            /** If the ping builder is present, use it to ping the service. */
            if (pingBuilder.isPresent()) {

                if (backendServiceHttpClient != null) {
                    pingBuilder.get().setBinaryReceiver((code, contentType, body) -> {
                        if (code >= 200 && code < 299) {
                            pingCount.incrementAndGet();
                        } else {
                            errorCount.incrementAndGet();
                        }

                    }).setErrorHandler(e -> {
                        logger.error("Error doing ping operation", e);
                        errorCount.incrementAndGet();
                    });

                    final HttpRequest httpRequest = pingBuilder.get().build();

                    backendServiceHttpClient.sendHttpRequest(httpRequest);
                }
            }

        } catch (Exception ex) {
            errorHandler.accept(ex);
            logger.error("Unable to check connection");
        }

    }
private void checkClient ( ) { try { /** If the errorCount is greater than 0, make sure we are still connected. */ if ( errorCount . get ( ) > 0 ) { errorCount . set ( 0 ) ; if ( backendServiceHttpClient == null || backendServiceHttpClient . isClosed ( ) ) { if ( backendServiceHttpClient != null ) { try { backendServiceHttpClient . stop ( ) ; } catch ( Exception ex ) { logger . debug ( "Was unable to stop the client connection" , ex ) ; } } backendServiceHttpClient = httpClientBuilder . buildAndStart ( ) ; lastHttpClientStart = time ; } } /** If the ping builder is present, use it to ping the service. */ if ( pingBuilder . isPresent ( ) ) { if ( backendServiceHttpClient != null ) { pingBuilder . get ( ) . setBinaryReceiver ( ( code , contentType , body ) -> { if ( code >= 200 && code < 299 ) { pingCount . incrementAndGet ( ) ; } else { errorCount . incrementAndGet ( ) ; } } ) . setErrorHandler ( e -> { logger . error ( "Error doing ping operation" , e ) ; errorCount . incrementAndGet ( ) ; } ) ; final HttpRequest httpRequest = pingBuilder . get ( ) . build ( ) ; backendServiceHttpClient . sendHttpRequest ( httpRequest ) ; } } } catch ( Exception ex ) { errorHandler . accept ( ex ) ; logger . error ( "Unable to check connection" ) ; } }
Checks client health periodically to see if we are connected. Tries to reconnect if not connected.
Checks client health periodically to see if we are connected . Tries to reconnect if not connected .