public class AbortSlowConsumerStrategy extends java.lang.Object implements SlowConsumerStrategy, java.lang.Runnable
| Modifier and Type | Field and Description |
|---|---|
protected Broker |
broker |
protected java.lang.String |
name |
protected Scheduler |
scheduler |
protected java.util.Map<Subscription,SlowConsumerEntry> |
slowConsumers |
protected java.util.concurrent.atomic.AtomicBoolean |
taskStarted |
| Constructor and Description |
|---|
AbortSlowConsumerStrategy() |
| Modifier and Type | Method and Description |
|---|---|
void |
abortConsumer(Subscription sub,
boolean abortSubscriberConnection) |
protected void |
abortSubscription(java.util.Map<Subscription,SlowConsumerEntry> toAbort,
boolean abortSubscriberConnection) |
void |
addDestination(Destination destination)
For Strategies that need to examine assigned destination for slow consumers
periodically the destination is assigned here.
|
long |
getCheckPeriod() |
long |
getMaxSlowCount() |
long |
getMaxSlowDuration() |
java.lang.String |
getName() |
java.util.Map<Subscription,SlowConsumerEntry> |
getSlowConsumers() |
boolean |
isAbortConnection() |
void |
run() |
void |
setAbortConnection(boolean abortConnection)
abort the consumers connection rather than sending a stop command to the remote consumer
|
void |
setBrokerService(Broker broker)
Sets the Broker instance which can provide a Scheduler among other things.
|
void |
setCheckPeriod(long checkPeriod)
time in milliseconds between checks for slow subscriptions
|
void |
setMaxSlowCount(long maxSlowCount)
number of times a subscription can be deemed slow before triggering abort
effect depends on dispatch rate as slow determination is done on dispatch
|
void |
setMaxSlowDuration(long maxSlowDuration)
time in milliseconds that a sub can remain slow before triggering
an abort.
|
void |
setName(java.lang.String name) |
void |
slowConsumer(ConnectionContext context,
Subscription subs)
Slow consumer event.
|
protected java.lang.String name
protected Scheduler scheduler
protected Broker broker
protected final java.util.concurrent.atomic.AtomicBoolean taskStarted
protected final java.util.Map<Subscription,SlowConsumerEntry> slowConsumers
public void setBrokerService(Broker broker)
SlowConsumerStrategysetBrokerService in interface SlowConsumerStrategybroker - The running Broker.public void slowConsumer(ConnectionContext context, Subscription subs)
SlowConsumerStrategyslowConsumer in interface SlowConsumerStrategycontext - Connection context of the subscription.subs - The subscription object for the slow consumer.public void run()
run in interface java.lang.Runnableprotected void abortSubscription(java.util.Map<Subscription,SlowConsumerEntry> toAbort, boolean abortSubscriberConnection)
public void abortConsumer(Subscription sub, boolean abortSubscriberConnection)
public long getMaxSlowCount()
public void setMaxSlowCount(long maxSlowCount)
public long getMaxSlowDuration()
public void setMaxSlowDuration(long maxSlowDuration)
maxSlowDuration - public long getCheckPeriod()
public void setCheckPeriod(long checkPeriod)
checkPeriod - public boolean isAbortConnection()
public void setAbortConnection(boolean abortConnection)
abortConnection - public void setName(java.lang.String name)
public java.lang.String getName()
public java.util.Map<Subscription,SlowConsumerEntry> getSlowConsumers()
public void addDestination(Destination destination)
SlowConsumerStrategyaddDestination in interface SlowConsumerStrategydestination - A destination to add to a watch list.Copyright © 2005-2014 Red Hat, Inc.. All Rights Reserved.