Class TopicSubscriptionManager
- java.lang.Object
-
- org.camunda.bpm.client.topic.impl.TopicSubscriptionManager
-
- All Implemented Interfaces:
java.lang.Runnable
public class TopicSubscriptionManager extends java.lang.Object implements java.lang.Runnable- Author:
- Tassilo Weidner
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.concurrent.locks.ReentrantLockACQUISITION_MONITORprotected BackoffStrategybackoffStrategyprotected longclientLockDurationprotected EngineClientengineClientprotected java.util.Map<java.lang.String,ExternalTaskHandler>externalTaskHandlersprotected ExternalTaskServiceImplexternalTaskServiceprotected java.util.concurrent.locks.ConditionIS_WAITINGprotected java.util.concurrent.atomic.AtomicBooleanisBackoffStrategyDisabledprotected java.util.concurrent.atomic.AtomicBooleanisRunningprotected static TopicSubscriptionManagerLoggerLOGprotected java.util.concurrent.CopyOnWriteArrayList<TopicSubscription>subscriptionsprotected java.util.List<TopicRequestDto>taskTopicRequestsprotected java.lang.Threadthreadprotected TypedValuestypedValues
-
Constructor Summary
Constructors Constructor Description TopicSubscriptionManager(EngineClient engineClient, TypedValues typedValues, long clientLockDuration)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidacquire()voiddisableBackoffStrategy()protected FetchAndLockResponseDtofetchAndLock(java.util.List<TopicRequestDto> subscriptions)EngineClientgetEngineClient()java.util.List<TopicSubscription>getSubscriptions()protected voidhandleExternalTask(ExternalTask externalTask, ExternalTaskHandler taskHandler)booleanisRunning()protected voidprepareAcquisition(TopicSubscription subscription)protected voidresume()voidrun()protected voidrunBackoffStrategy(FetchAndLockResponseDto fetchAndLockResponse)voidsetBackoffStrategy(BackoffStrategy backOffStrategy)voidstart()voidstop()protected voidsubscribe(TopicSubscription subscription)protected voidsuspend(long waitTime)protected voidunsubscribe(TopicSubscriptionImpl subscription)
-
-
-
Field Detail
-
LOG
protected static final TopicSubscriptionManagerLogger LOG
-
ACQUISITION_MONITOR
protected java.util.concurrent.locks.ReentrantLock ACQUISITION_MONITOR
-
IS_WAITING
protected java.util.concurrent.locks.Condition IS_WAITING
-
isRunning
protected java.util.concurrent.atomic.AtomicBoolean isRunning
-
externalTaskService
protected ExternalTaskServiceImpl externalTaskService
-
engineClient
protected EngineClient engineClient
-
subscriptions
protected java.util.concurrent.CopyOnWriteArrayList<TopicSubscription> subscriptions
-
taskTopicRequests
protected java.util.List<TopicRequestDto> taskTopicRequests
-
externalTaskHandlers
protected java.util.Map<java.lang.String,ExternalTaskHandler> externalTaskHandlers
-
thread
protected java.lang.Thread thread
-
backoffStrategy
protected BackoffStrategy backoffStrategy
-
isBackoffStrategyDisabled
protected java.util.concurrent.atomic.AtomicBoolean isBackoffStrategyDisabled
-
typedValues
protected TypedValues typedValues
-
clientLockDuration
protected long clientLockDuration
-
-
Constructor Detail
-
TopicSubscriptionManager
public TopicSubscriptionManager(EngineClient engineClient, TypedValues typedValues, long clientLockDuration)
-
-
Method Detail
-
run
public void run()
- Specified by:
runin interfacejava.lang.Runnable
-
acquire
protected void acquire()
-
prepareAcquisition
protected void prepareAcquisition(TopicSubscription subscription)
-
fetchAndLock
protected FetchAndLockResponseDto fetchAndLock(java.util.List<TopicRequestDto> subscriptions)
-
handleExternalTask
protected void handleExternalTask(ExternalTask externalTask, ExternalTaskHandler taskHandler)
-
stop
public void stop()
-
start
public void start()
-
subscribe
protected void subscribe(TopicSubscription subscription)
-
unsubscribe
protected void unsubscribe(TopicSubscriptionImpl subscription)
-
getEngineClient
public EngineClient getEngineClient()
-
getSubscriptions
public java.util.List<TopicSubscription> getSubscriptions()
-
isRunning
public boolean isRunning()
-
setBackoffStrategy
public void setBackoffStrategy(BackoffStrategy backOffStrategy)
-
runBackoffStrategy
protected void runBackoffStrategy(FetchAndLockResponseDto fetchAndLockResponse)
-
suspend
protected void suspend(long waitTime)
-
resume
protected void resume()
-
disableBackoffStrategy
public void disableBackoffStrategy()
-
-