public class PooledCacheEventQueue extends java.lang.Object implements ICacheEventQueue
This is a modified version of the experimental version. It uses a PooledExecutor and a BoundedBuffer to queue up events and execute them as threads become available.
The PooledExecutor is static, because presumably these processes will be IO bound, so throwing more than a few threads at them will serve no purpose other than to saturate the IO interface. In light of this, having one thread per region seems unnecessary. This may prove to be false.
POOLED_QUEUE_TYPE, SINGLE_QUEUE_TYPE
Constructor and Description |
---|
PooledCacheEventQueue(ICacheListener listener,
long listenerId,
java.lang.String cacheName,
int maxFailure,
int waitBeforeRetry,
java.lang.String threadPoolName)
Constructor for the CacheEventQueue object
|
Modifier and Type | Method and Description |
---|---|
void |
addDisposeEvent()
Adds a feature to the DisposeEvent attribute of the ICacheEventQueue
object
|
void |
addPutEvent(ICacheElement ce)
Constructs a PutEvent for the object and passes it to the event queue.
|
void |
addRemoveAllEvent()
Adds a feature to the RemoveAllEvent attribute of the ICacheEventQueue
object
|
void |
addRemoveEvent(java.io.Serializable key)
Adds a feature to the RemoveEvent attribute of the ICacheEventQueue
object
|
void |
destroy()
Destroy the queue.
|
long |
getListenerId()
Gets the listenerId attribute of the ICacheEventQueue object
|
java.lang.String |
getQueueType()
Return the type of event queue we are using, either single or pooled.
|
IStats |
getStatistics()
Returns the historical and statistical data for an event queue cache.
|
java.lang.String |
getStats() |
int |
getWaitToDieMillis()
Returns the time to wait for events before killing the background thread.
|
void |
initialize(ICacheListener listener,
long listenerId,
java.lang.String cacheName,
int maxFailure,
int waitBeforeRetry,
java.lang.String threadPoolName)
Initializes the queue.
|
boolean |
isAlive()
Gets the alive attribute of the ICacheEventQueue object.
|
boolean |
isEmpty()
If the Queue is using a bounded channel we can determine the size.
|
boolean |
isWorking()
A Queue is working unless it has reached its max failure count.
|
void |
setAlive(boolean aState) |
void |
setWaitToDieMillis(int wtdm)
Sets the time to wait for events before killing the background thread.
|
void |
setWorking(boolean isWorkingArg) |
int |
size()
Returns the number of elements in the queue.
|
void |
stopProcessing()
Event Q is empty.
|
java.lang.String |
toString() |
public PooledCacheEventQueue(ICacheListener listener, long listenerId, java.lang.String cacheName, int maxFailure, int waitBeforeRetry, java.lang.String threadPoolName)
listener
- listenerId
- cacheName
- maxFailure
- waitBeforeRetry
- threadPoolName
- public void initialize(ICacheListener listener, long listenerId, java.lang.String cacheName, int maxFailure, int waitBeforeRetry, java.lang.String threadPoolName)
initialize
in interface ICacheEventQueue
listener
- listenerId
- cacheName
- maxFailure
- waitBeforeRetry
- threadPoolName
- public java.lang.String getQueueType()
ICacheEventQueue
getQueueType
in interface ICacheEventQueue
public void stopProcessing()
public int getWaitToDieMillis()
public void setWaitToDieMillis(int wtdm)
wtdm
- public java.lang.String toString()
toString
in class java.lang.Object
public boolean isAlive()
ICacheEventQueue
isAlive
in interface ICacheEventQueue
public void setAlive(boolean aState)
aState
- public long getListenerId()
ICacheEventQueue
getListenerId
in interface ICacheEventQueue
public void destroy()
destroy
in interface ICacheEventQueue
public void addPutEvent(ICacheElement ce) throws java.io.IOException
addPutEvent
in interface ICacheEventQueue
ce
- The feature to be added to the PutEvent attributejava.io.IOException
public void addRemoveEvent(java.io.Serializable key) throws java.io.IOException
ICacheEventQueue
addRemoveEvent
in interface ICacheEventQueue
key
- The feature to be added to the RemoveEvent attributejava.io.IOException
public void addRemoveAllEvent() throws java.io.IOException
ICacheEventQueue
addRemoveAllEvent
in interface ICacheEventQueue
java.io.IOException
public void addDisposeEvent() throws java.io.IOException
ICacheEventQueue
addDisposeEvent
in interface ICacheEventQueue
java.io.IOException
public java.lang.String getStats()
public IStats getStatistics()
ICacheEventQueue
getStatistics
in interface ICacheEventQueue
public boolean isWorking()
ICacheEventQueue
isWorking
in interface ICacheEventQueue
public void setWorking(boolean isWorkingArg)
isWorkingArg
- whether the queue is functionalpublic boolean isEmpty()
isEmpty
in interface ICacheEventQueue
public int size()
size
in interface ICacheEventQueue
Copyright © 2002-2013 Apache Software Foundation. All Rights Reserved.