Class AbstractAsynchronousOperationHandlers.StatusHandler<T extends RestfulGateway,V,M extends MessageParameters>
- java.lang.Object
-
- org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandlerAdapter
-
- org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandlerAdapter
-
- org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler<RoutedRequest>
-
- org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler<T>
-
- org.apache.flink.runtime.rest.handler.AbstractHandler<T,R,M>
-
- org.apache.flink.runtime.rest.handler.AbstractRestHandler<T,EmptyRequestBody,AsynchronousOperationResult<V>,M>
-
- org.apache.flink.runtime.rest.handler.async.AbstractAsynchronousOperationHandlers.StatusHandler<T,V,M>
-
- Type Parameters:
T
- type of the leader gatewayV
- type of the operation resultM
- type of the message headers
- All Implemented Interfaces:
AutoCloseable
,org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandler
,org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandler
,AutoCloseableAsync
- Direct Known Subclasses:
ClusterDataSetDeleteHandlers.ClusterDataSetDeleteStatusHandler
,RescalingHandlers.RescalingStatusHandler
,SavepointDisposalHandlers.SavepointDisposalStatusHandler
- Enclosing class:
- AbstractAsynchronousOperationHandlers<K extends OperationKey,R extends Serializable>
protected abstract class AbstractAsynchronousOperationHandlers.StatusHandler<T extends RestfulGateway,V,M extends MessageParameters> extends AbstractRestHandler<T,EmptyRequestBody,AsynchronousOperationResult<V>,M>
Handler which will be polled to retrieve the asynchronous operation's result. The handler returns aAsynchronousOperationResult
which indicates whether the operation is still in progress or has completed. In case that the operation has been completed, theAsynchronousOperationResult
contains the operation result.
-
-
Field Summary
-
Fields inherited from class org.apache.flink.runtime.rest.handler.AbstractHandler
log, MAPPER
-
Fields inherited from class org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler
leaderRetriever, logger, responseHeaders, timeout
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
StatusHandler(GatewayRetriever<? extends T> leaderRetriever, Duration timeout, Map<String,String> responseHeaders, MessageHeaders<EmptyRequestBody,AsynchronousOperationResult<V>,M> messageHeaders)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description CompletableFuture<Void>
closeHandlerAsync()
protected abstract V
exceptionalOperationResultResponse(Throwable throwable)
Create an exceptional operation result from the givenThrowable
.protected abstract K
getOperationKey(HandlerRequest<EmptyRequestBody> request)
Extract the operation key under which the operation result future is stored.CompletableFuture<AsynchronousOperationResult<V>>
handleRequest(HandlerRequest<EmptyRequestBody> request, T gateway)
This method is called for every incoming request and returns aCompletableFuture
containing a the response.protected abstract V
operationResultResponse(R operationResult)
Create the operation result from the given value.-
Methods inherited from class org.apache.flink.runtime.rest.handler.AbstractRestHandler
getMessageHeaders, respondToRequest
-
Methods inherited from class org.apache.flink.runtime.rest.handler.AbstractHandler
closeAsync, respondAsLeader
-
Methods inherited from class org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler
channelRead0, getTimeout
-
Methods inherited from class org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler
acceptInboundMessage, channelRead
-
Methods inherited from class org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
-
Methods inherited from class org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.flink.util.AutoCloseableAsync
close
-
-
-
-
Constructor Detail
-
StatusHandler
protected StatusHandler(GatewayRetriever<? extends T> leaderRetriever, Duration timeout, Map<String,String> responseHeaders, MessageHeaders<EmptyRequestBody,AsynchronousOperationResult<V>,M> messageHeaders)
-
-
Method Detail
-
handleRequest
public CompletableFuture<AsynchronousOperationResult<V>> handleRequest(@Nonnull HandlerRequest<EmptyRequestBody> request, @Nonnull T gateway) throws RestHandlerException
Description copied from class:AbstractRestHandler
This method is called for every incoming request and returns aCompletableFuture
containing a the response.Implementations may decide whether to throw
RestHandlerException
s or fail the returnedCompletableFuture
with aRestHandlerException
.Failing the future with another exception type or throwing unchecked exceptions is regarded as an implementation error as it does not allow us to provide a meaningful HTTP status code. In this case a
HttpResponseStatus.INTERNAL_SERVER_ERROR
will be returned.- Specified by:
handleRequest
in classAbstractRestHandler<T extends RestfulGateway,EmptyRequestBody,AsynchronousOperationResult<V>,M extends MessageParameters>
- Parameters:
request
- request that should be handledgateway
- leader gateway- Returns:
- future containing a handler response
- Throws:
RestHandlerException
- if the handling failed
-
closeHandlerAsync
public CompletableFuture<Void> closeHandlerAsync()
- Overrides:
closeHandlerAsync
in classAbstractHandler<T extends RestfulGateway,EmptyRequestBody,M extends MessageParameters>
-
getOperationKey
protected abstract K getOperationKey(HandlerRequest<EmptyRequestBody> request)
Extract the operation key under which the operation result future is stored.- Parameters:
request
- with which the status handler has been called- Returns:
- Operation key under which the operation result future is stored
-
exceptionalOperationResultResponse
protected abstract V exceptionalOperationResultResponse(Throwable throwable)
Create an exceptional operation result from the givenThrowable
. This method is called if the asynchronous operation failed.- Parameters:
throwable
- failure of the asynchronous operation- Returns:
- Exceptional operation result
-
-