Class JobExecutor

java.lang.Object
org.camunda.bpm.engine.impl.jobexecutor.JobExecutor
Direct Known Subclasses:
ManagedJobExecutor, ManagedJobExecutor, RuntimeContainerJobExecutor, SpringJobExecutor, ThreadPoolJobExecutor

public abstract class JobExecutor extends Object

Interface to the component responsible for performing background work (Jobs).

The JobExecutor is capable of dispatching to multiple process engines, ie. multiple process engines can share a single Thread Pool for performing Background Work.

In clustered situations, you can have multiple Job Executors running against the same queue + pending job list.

Author:
Daniel Meyer
  • Field Details

    • name

      protected String name
    • processEngines

      protected List<ProcessEngineImpl> processEngines
    • acquireJobsCmdFactory

      protected AcquireJobsCommandFactory acquireJobsCmdFactory
    • acquireJobsRunnable

      protected AcquireJobsRunnable acquireJobsRunnable
    • rejectedJobsHandler

      protected RejectedJobsHandler rejectedJobsHandler
    • jobAcquisitionThread

      protected Thread jobAcquisitionThread
    • isAutoActivate

      protected boolean isAutoActivate
    • isActive

      protected boolean isActive
    • maxJobsPerAcquisition

      protected int maxJobsPerAcquisition
    • waitTimeInMillis

      protected int waitTimeInMillis
    • waitIncreaseFactor

      protected float waitIncreaseFactor
    • maxWait

      protected long maxWait
    • backoffTimeInMillis

      protected int backoffTimeInMillis
    • maxBackoff

      protected long maxBackoff
    • backoffDecreaseThreshold

      protected int backoffDecreaseThreshold
      The number of job acquisition cycles without locking failures until the backoff level is reduced.
    • lockOwner

      protected String lockOwner
    • lockTimeInMillis

      protected int lockTimeInMillis
  • Constructor Details

    • JobExecutor

      public JobExecutor()
  • Method Details

    • start

      public void start()
    • shutdown

      public void shutdown()
    • ensureInitialization

      protected void ensureInitialization()
    • ensureCleanup

      protected void ensureCleanup()
    • jobWasAdded

      public void jobWasAdded()
    • registerProcessEngine

      public void registerProcessEngine(ProcessEngineImpl processEngine)
    • unregisterProcessEngine

      public void unregisterProcessEngine(ProcessEngineImpl processEngine)
    • startExecutingJobs

      protected abstract void startExecutingJobs()
    • stopExecutingJobs

      protected abstract void stopExecutingJobs()
    • executeJobs

      public abstract void executeJobs(List<String> jobIds, ProcessEngineImpl processEngine)
    • executeJobs

      @Deprecated public void executeJobs(List<String> jobIds)
      Deprecated.
      Deprecated: use executeJobs(List, ProcessEngineImpl) instead
      Parameters:
      jobIds -
    • logAcquisitionAttempt

      public void logAcquisitionAttempt(ProcessEngineImpl engine)
    • logAcquiredJobs

      public void logAcquiredJobs(ProcessEngineImpl engine, int numJobs)
    • logAcquisitionFailureJobs

      public void logAcquisitionFailureJobs(ProcessEngineImpl engine, int numJobs)
    • logRejectedExecution

      public void logRejectedExecution(ProcessEngineImpl engine, int numJobs)
    • getProcessEngines

      public List<ProcessEngineImpl> getProcessEngines()
    • engineIterator

      public Iterator<ProcessEngineImpl> engineIterator()
      Must return an iterator of registered process engines that is independent of concurrent modifications to the underlying data structure of engines.
    • hasRegisteredEngine

      public boolean hasRegisteredEngine(ProcessEngineImpl engine)
    • getCommandExecutor

      @Deprecated public CommandExecutor getCommandExecutor()
      Deprecated.
      Deprecated: use getProcessEngines() instead
    • setCommandExecutor

      @Deprecated public void setCommandExecutor(CommandExecutor commandExecutorTxRequired)
      Deprecated.
      Parameters:
      commandExecutorTxRequired -
    • getWaitTimeInMillis

      public int getWaitTimeInMillis()
    • setWaitTimeInMillis

      public void setWaitTimeInMillis(int waitTimeInMillis)
    • getBackoffTimeInMillis

      public int getBackoffTimeInMillis()
    • setBackoffTimeInMillis

      public void setBackoffTimeInMillis(int backoffTimeInMillis)
    • getLockTimeInMillis

      public int getLockTimeInMillis()
    • setLockTimeInMillis

      public void setLockTimeInMillis(int lockTimeInMillis)
    • getLockOwner

      public String getLockOwner()
    • setLockOwner

      public void setLockOwner(String lockOwner)
    • isAutoActivate

      public boolean isAutoActivate()
    • setProcessEngines

      public void setProcessEngines(List<ProcessEngineImpl> processEngines)
    • setAutoActivate

      public void setAutoActivate(boolean isAutoActivate)
    • getMaxJobsPerAcquisition

      public int getMaxJobsPerAcquisition()
    • setMaxJobsPerAcquisition

      public void setMaxJobsPerAcquisition(int maxJobsPerAcquisition)
    • getWaitIncreaseFactor

      public float getWaitIncreaseFactor()
    • setWaitIncreaseFactor

      public void setWaitIncreaseFactor(float waitIncreaseFactor)
    • getMaxWait

      public long getMaxWait()
    • setMaxWait

      public void setMaxWait(long maxWait)
    • getMaxBackoff

      public long getMaxBackoff()
    • setMaxBackoff

      public void setMaxBackoff(long maxBackoff)
    • getBackoffDecreaseThreshold

      public int getBackoffDecreaseThreshold()
    • setBackoffDecreaseThreshold

      public void setBackoffDecreaseThreshold(int backoffDecreaseThreshold)
    • getName

      public String getName()
    • getAcquireJobsCmd

      public Command<AcquiredJobs> getAcquireJobsCmd(int numJobs)
    • getAcquireJobsCmdFactory

      public AcquireJobsCommandFactory getAcquireJobsCmdFactory()
    • setAcquireJobsCmdFactory

      public void setAcquireJobsCmdFactory(AcquireJobsCommandFactory acquireJobsCmdFactory)
    • isActive

      public boolean isActive()
    • getRejectedJobsHandler

      public RejectedJobsHandler getRejectedJobsHandler()
    • setRejectedJobsHandler

      public void setRejectedJobsHandler(RejectedJobsHandler rejectedJobsHandler)
    • startJobAcquisitionThread

      protected void startJobAcquisitionThread()
    • stopJobAcquisitionThread

      protected void stopJobAcquisitionThread()
    • getAcquireJobsRunnable

      public AcquireJobsRunnable getAcquireJobsRunnable()
    • getExecuteJobsRunnable

      public Runnable getExecuteJobsRunnable(List<String> jobIds, ProcessEngineImpl processEngine)