Package org.camunda.bpm.engine.rest.impl
Class FetchAndLockHandlerImpl
java.lang.Object
org.camunda.bpm.engine.rest.impl.FetchAndLockHandlerImpl
- All Implemented Interfaces:
Runnable,FetchAndLockHandler
- Author:
- Tassilo Weidner
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected SingleConsumerConditionprotected Threadprotected booleanprotected booleanprotected static final longprotected static final longprotected List<FetchAndLockRequest>protected static final longprotected List<FetchAndLockRequest>protected BlockingQueue<FetchAndLockRequest>protected static final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidacquire()voidaddPendingRequest(FetchExternalTasksExtendedDto dto, jakarta.ws.rs.container.AsyncResponse asyncResponse, ProcessEngine processEngine) Invoked if a fetch and lock request has been sent by the clientprotected voidaddRequest(FetchAndLockRequest request) voidcontextInitialized(jakarta.servlet.ServletContextEvent servletContextEvent) Invoked on initialization of the servlet contextprotected voiderrorTooManyRequests(jakarta.ws.rs.container.AsyncResponse asyncResponse) protected List<LockedExternalTaskDto>executeFetchAndLock(FetchExternalTasksExtendedDto fetchingDto, ProcessEngine processEngine) protected ProcessEnginegetProcessEngine(FetchAndLockRequest request) protected booleanisExpired(FetchAndLockRequest request) protected voidparseUniqueWorkerRequestParam(String uniqueWorkerRequestParam) protected voidprotected voidvoidrun()voidshutdown()Receives a notification that the engine rest web application is about to be shut downvoidstart()Receives a notification that the engine rest web application initialization has been startedprotected voidsuspend(long millis) protected voidsuspendAcquisition(long millis) protected FetchAndLockResulttryFetchAndLock(FetchAndLockRequest request)
-
Field Details
-
UNIQUE_WORKER_REQUEST_PARAM_NAME
- See Also:
-
PENDING_REQUEST_FETCH_INTERVAL
protected static final long PENDING_REQUEST_FETCH_INTERVAL- See Also:
-
MAX_BACK_OFF_TIME
protected static final long MAX_BACK_OFF_TIME- See Also:
-
MAX_REQUEST_TIMEOUT
protected static final long MAX_REQUEST_TIMEOUT- See Also:
-
condition
-
queue
-
pendingRequests
-
newRequests
-
handlerThread
-
isRunning
protected volatile boolean isRunning -
isUniqueWorkerRequest
protected boolean isUniqueWorkerRequest
-
-
Constructor Details
-
FetchAndLockHandlerImpl
public FetchAndLockHandlerImpl()
-
-
Method Details
-
run
public void run() -
acquire
protected void acquire() -
removeDuplicates
protected void removeDuplicates() -
start
public void start()Description copied from interface:FetchAndLockHandlerReceives a notification that the engine rest web application initialization has been started- Specified by:
startin interfaceFetchAndLockHandler
-
shutdown
public void shutdown()Description copied from interface:FetchAndLockHandlerReceives a notification that the engine rest web application is about to be shut down- Specified by:
shutdownin interfaceFetchAndLockHandler
-
suspend
protected void suspend(long millis) -
suspendAcquisition
protected void suspendAcquisition(long millis) -
addRequest
-
tryFetchAndLock
-
executeFetchAndLock
protected List<LockedExternalTaskDto> executeFetchAndLock(FetchExternalTasksExtendedDto fetchingDto, ProcessEngine processEngine) -
errorTooManyRequests
protected void errorTooManyRequests(jakarta.ws.rs.container.AsyncResponse asyncResponse) -
rejectPendingRequests
protected void rejectPendingRequests() -
getProcessEngine
-
isExpired
-
addPendingRequest
public void addPendingRequest(FetchExternalTasksExtendedDto dto, jakarta.ws.rs.container.AsyncResponse asyncResponse, ProcessEngine processEngine) Description copied from interface:FetchAndLockHandlerInvoked if a fetch and lock request has been sent by the client- Specified by:
addPendingRequestin interfaceFetchAndLockHandler- Parameters:
dto- which is supposed to hold the payloadasyncResponse- provides means for asynchronous server side response processingprocessEngine- provides the process engine context of the respective request
-
contextInitialized
public void contextInitialized(jakarta.servlet.ServletContextEvent servletContextEvent) Description copied from interface:FetchAndLockHandlerInvoked on initialization of the servlet context- Specified by:
contextInitializedin interfaceFetchAndLockHandler- Parameters:
servletContextEvent- provides the servlet context
-
parseUniqueWorkerRequestParam
-
getPendingRequests
-