Interface GracefulAutoCloseable

All Superinterfaces:
AutoCloseable
All Known Subinterfaces:
BlockingGrpcClient<Client>, BlockingGrpcService, BlockingHttpClient, BlockingHttpConnection, BlockingHttpRequester, BlockingHttpService, BlockingStreamingHttpClient, BlockingStreamingHttpConnection, BlockingStreamingHttpRequester, BlockingStreamingHttpService, CompositeCloseable, FilterableStreamingHttpLoadBalancedConnection, GrpcClient<BlockingClient>, GrpcRoutes.BlockingRequestStreamingRoute<Req,Resp>, GrpcRoutes.BlockingResponseStreamingRoute<Req,Resp>, GrpcRoutes.BlockingRoute<Req,Resp>, GrpcRoutes.BlockingStreamingRoute<Req,Resp>, GrpcServerContext, Health.BlockingCheckRpc, Health.BlockingHealthClient, Health.BlockingHealthService, Health.BlockingWatchRpc, Health.HealthClient, HttpClient, HttpConnection, HttpServerContext, ReservedBlockingHttpConnection, ReservedBlockingStreamingHttpConnection, ReservedHttpConnection, ReservedStreamingHttpConnection, ServerContext, StreamingDeserializer<T>, StreamingHttpClient, StreamingHttpConnection
All Known Implementing Classes:
DelegatingFilterableStreamingHttpLoadBalancedConnection, HttpLoadBalancerFactory.DefaultFilterableStreamingHttpLoadBalancedConnection, NettyServerContext

public interface GracefulAutoCloseable extends AutoCloseable
An extension of AutoCloseable to add graceful closure semantics.
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    Used to close/shutdown a resource, similar to AutoCloseable.close(), but attempts to cleanup state before abruptly closing.

    Methods inherited from interface java.lang.AutoCloseable

    close
  • Method Details

    • closeGracefully

      default void closeGracefully() throws Exception
      Used to close/shutdown a resource, similar to AutoCloseable.close(), but attempts to cleanup state before abruptly closing. This provides a hint that implementations can use to stop accepting new work and finish in flight work. This method is implemented on a "best effort" basis and may be equivalent to AutoCloseable.close().

      Note: Implementations may or may not apply a timeout for this operation to complete, if a caller does not want to wait indefinitely, and are unsure if the implementation applies a timeout, it is advisable to apply a timeout and force a call to AutoCloseable.close().

      Throws:
      Exception - if graceful closure failed.