Class FetchAndLockHandlerImpl

  • All Implemented Interfaces:
    java.lang.Runnable, FetchAndLockHandler

    public class FetchAndLockHandlerImpl
    extends java.lang.Object
    implements java.lang.Runnable, FetchAndLockHandler
    Author:
    Tassilo Weidner
    • Field Detail

      • UNIQUE_WORKER_REQUEST_PARAM_NAME

        protected static final java.lang.String UNIQUE_WORKER_REQUEST_PARAM_NAME
        See Also:
        Constant Field Values
      • PENDING_REQUEST_FETCH_INTERVAL

        protected static final long PENDING_REQUEST_FETCH_INTERVAL
        See Also:
        Constant Field Values
      • handlerThread

        protected java.lang.Thread handlerThread
      • isRunning

        protected volatile boolean isRunning
      • isUniqueWorkerRequest

        protected boolean isUniqueWorkerRequest
    • Constructor Detail

      • FetchAndLockHandlerImpl

        public FetchAndLockHandlerImpl()
    • Method Detail

      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
      • acquire

        protected void acquire()
      • removeDuplicates

        protected void removeDuplicates()
      • start

        public void start()
        Description copied from interface: FetchAndLockHandler
        Receives a notification that the engine rest web application initialization has been started
        Specified by:
        start in interface FetchAndLockHandler
      • shutdown

        public void shutdown()
        Description copied from interface: FetchAndLockHandler
        Receives a notification that the engine rest web application is about to be shut down
        Specified by:
        shutdown in interface FetchAndLockHandler
      • suspend

        protected void suspend​(long millis)
      • suspendAcquisition

        protected void suspendAcquisition​(long millis)
      • errorTooManyRequests

        protected void errorTooManyRequests​(javax.ws.rs.container.AsyncResponse asyncResponse)
      • rejectPendingRequests

        protected void rejectPendingRequests()
      • addPendingRequest

        public void addPendingRequest​(FetchExternalTasksExtendedDto dto,
                                      javax.ws.rs.container.AsyncResponse asyncResponse,
                                      ProcessEngine processEngine)
        Description copied from interface: FetchAndLockHandler
        Invoked if a fetch and lock request has been sent by the client
        Specified by:
        addPendingRequest in interface FetchAndLockHandler
        Parameters:
        dto - which is supposed to hold the payload
        asyncResponse - provides means for asynchronous server side response processing
        processEngine - provides the process engine context of the respective request
      • contextInitialized

        public void contextInitialized​(javax.servlet.ServletContextEvent servletContextEvent)
        Description copied from interface: FetchAndLockHandler
        Invoked on initialization of the servlet context
        Specified by:
        contextInitialized in interface FetchAndLockHandler
        Parameters:
        servletContextEvent - provides the servlet context
      • parseUniqueWorkerRequestParam

        protected void parseUniqueWorkerRequestParam​(java.lang.String uniqueWorkerRequestParam)