Package net.rubyeye.xmemcached.impl
Class MemcachedHandler
- java.lang.Object
-
- com.google.code.yanf4j.core.impl.HandlerAdapter
-
- net.rubyeye.xmemcached.impl.MemcachedHandler
-
- All Implemented Interfaces:
Handler
public class MemcachedHandler extends HandlerAdapter
Memcached Session Handler,used for dispatching commands and session's lifecycle management
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
MemcachedHandler.CheckHeartResultThread
-
Field Summary
Fields Modifier and Type Field Description private MemcachedClient
client
static IoBuffer
EMPTY_BUF
private boolean
enableHeartBeat
private static java.lang.String
HEART_BEAT_FAIL_COUNT_ATTR
(package private) long
HEARTBEAT_PERIOD
private java.util.concurrent.ExecutorService
heartBeatThreadPool
private MemcachedSessionConnectListener
listener
private static org.slf4j.Logger
log
private static int
MAX_HEART_BEAT_FAIL_COUNT
private static int
MAX_HEARTBEAT_THREADS
private StatisticsHandler
statisticsHandler
-
Constructor Summary
Constructors Constructor Description MemcachedHandler(MemcachedClient client)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
checkHeartBeat(Session session)
void
onExceptionCaught(Session session, java.lang.Throwable throwable)
void
onMessageReceived(Session session, java.lang.Object msg)
On receive message from memcached servervoid
onMessageSent(Session session, java.lang.Object msg)
put command which have been sent to queuevoid
onSessionClosed(Session session)
Check if have to reconnect on session closedvoid
onSessionIdle(Session session)
Do a heartbeat actionvoid
onSessionStarted(Session session)
On session startedprotected void
reconnect(MemcachedTCPSession session)
Auto reconect to memcached servervoid
setEnableHeartBeat(boolean enableHeartBeat)
void
start()
void
stop()
-
Methods inherited from class com.google.code.yanf4j.core.impl.HandlerAdapter
onSessionConnected, onSessionCreated, onSessionExpired
-
-
-
-
Field Detail
-
MAX_HEARTBEAT_THREADS
private static final int MAX_HEARTBEAT_THREADS
-
statisticsHandler
private final StatisticsHandler statisticsHandler
-
heartBeatThreadPool
private java.util.concurrent.ExecutorService heartBeatThreadPool
-
listener
private final MemcachedSessionConnectListener listener
-
client
private final MemcachedClient client
-
log
private static final org.slf4j.Logger log
-
enableHeartBeat
private volatile boolean enableHeartBeat
-
EMPTY_BUF
public static final IoBuffer EMPTY_BUF
-
HEART_BEAT_FAIL_COUNT_ATTR
private static final java.lang.String HEART_BEAT_FAIL_COUNT_ATTR
- See Also:
- Constant Field Values
-
MAX_HEART_BEAT_FAIL_COUNT
private static final int MAX_HEART_BEAT_FAIL_COUNT
-
HEARTBEAT_PERIOD
final long HEARTBEAT_PERIOD
-
-
Constructor Detail
-
MemcachedHandler
public MemcachedHandler(MemcachedClient client)
-
-
Method Detail
-
onMessageReceived
public final void onMessageReceived(Session session, java.lang.Object msg)
On receive message from memcached server- Specified by:
onMessageReceived
in interfaceHandler
- Overrides:
onMessageReceived
in classHandlerAdapter
-
setEnableHeartBeat
public void setEnableHeartBeat(boolean enableHeartBeat)
-
onMessageSent
public final void onMessageSent(Session session, java.lang.Object msg)
put command which have been sent to queue- Specified by:
onMessageSent
in interfaceHandler
- Overrides:
onMessageSent
in classHandlerAdapter
-
onExceptionCaught
public void onExceptionCaught(Session session, java.lang.Throwable throwable)
- Specified by:
onExceptionCaught
in interfaceHandler
- Overrides:
onExceptionCaught
in classHandlerAdapter
-
onSessionStarted
public void onSessionStarted(Session session)
On session started- Specified by:
onSessionStarted
in interfaceHandler
- Overrides:
onSessionStarted
in classHandlerAdapter
-
onSessionClosed
public final void onSessionClosed(Session session)
Check if have to reconnect on session closed- Specified by:
onSessionClosed
in interfaceHandler
- Overrides:
onSessionClosed
in classHandlerAdapter
-
onSessionIdle
public void onSessionIdle(Session session)
Do a heartbeat action- Specified by:
onSessionIdle
in interfaceHandler
- Overrides:
onSessionIdle
in classHandlerAdapter
-
checkHeartBeat
private void checkHeartBeat(Session session)
-
reconnect
protected void reconnect(MemcachedTCPSession session)
Auto reconect to memcached server- Parameters:
session
-
-
stop
public void stop()
-
start
public void start()
-
-