@ChannelHandler.Sharable public class ConnectionWatchdog extends ChannelInboundHandlerAdapter
ChannelHandler
responsible for monitoring the channel and reconnecting when the connection is lost.ChannelHandler.Sharable
Constructor and Description |
---|
ConnectionWatchdog(Delay reconnectDelay,
ClientOptions clientOptions,
Bootstrap bootstrap,
Timer timer,
EventExecutorGroup reconnectWorkers,
Mono<SocketAddress> socketAddressSupplier,
ReconnectionListener reconnectionListener,
ConnectionFacade connectionFacade,
EventBus eventBus,
Endpoint endpoint)
Create a new watchdog that adds to new connections to the supplied
ChannelGroup and establishes a new
Channel when disconnected, while reconnect is true. |
Modifier and Type | Method and Description |
---|---|
void |
channelActive(ChannelHandlerContext ctx) |
void |
channelInactive(ChannelHandlerContext ctx) |
boolean |
isListenOnChannelInactive() |
boolean |
isReconnectSuspended() |
void |
run(int attempt)
Reconnect to the remote address that the closed channel was connected to.
|
void |
scheduleReconnect()
Schedule reconnect if channel is not available/not active.
|
void |
setListenOnChannelInactive(boolean listenOnChannelInactive)
Enable event listener for disconnected events.
|
void |
setReconnectSuspended(boolean reconnectSuspended)
Suspend reconnection temporarily.
|
channelRead, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handlerAdded, handlerRemoved
public ConnectionWatchdog(Delay reconnectDelay, ClientOptions clientOptions, Bootstrap bootstrap, Timer timer, EventExecutorGroup reconnectWorkers, Mono<SocketAddress> socketAddressSupplier, ReconnectionListener reconnectionListener, ConnectionFacade connectionFacade, EventBus eventBus, Endpoint endpoint)
ChannelGroup
and establishes a new
Channel
when disconnected, while reconnect is true. The socketAddressSupplier can supply the reconnect address.reconnectDelay
- reconnect delay, must not be null
clientOptions
- client options for the current connection, must not be null
bootstrap
- Configuration for new channels, must not be null
timer
- Timer used for delayed reconnect, must not be null
reconnectWorkers
- executor group for reconnect tasks, must not be null
socketAddressSupplier
- the socket address supplier to obtain an address for reconnection, may be null
reconnectionListener
- the reconnection listener, must not be null
connectionFacade
- the connection facade, must not be null
eventBus
- Event bus to emit reconnect events.endpoint
- must not be null
public void channelActive(ChannelHandlerContext ctx) throws Exception
channelActive
in interface ChannelInboundHandler
channelActive
in class ChannelInboundHandlerAdapter
Exception
public void channelInactive(ChannelHandlerContext ctx) throws Exception
channelInactive
in interface ChannelInboundHandler
channelInactive
in class ChannelInboundHandlerAdapter
Exception
public void scheduleReconnect()
public void run(int attempt) throws Exception
ChannelPipeline
with
the same handler instances contained in the old channel's pipeline.attempt
- attempt counterException
- when reconnection fails.public void setListenOnChannelInactive(boolean listenOnChannelInactive)
listenOnChannelInactive
- true
to listen for disconnected events.public boolean isListenOnChannelInactive()
public void setReconnectSuspended(boolean reconnectSuspended)
reconnectSuspended
- true
to suspend reconnectionpublic boolean isReconnectSuspended()
Copyright © 2023 lettuce.io. All rights reserved.