Class DefaultAsyncJobExecutor
- java.lang.Object
-
- org.activiti.engine.impl.asyncexecutor.DefaultAsyncJobExecutor
-
- All Implemented Interfaces:
AsyncExecutor
- Direct Known Subclasses:
ManagedAsyncJobExecutor,SharedExecutorServiceAsyncExecutor
public class DefaultAsyncJobExecutor extends java.lang.Object implements AsyncExecutor
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.ThreadasyncJobAcquisitionThreadprotected intasyncJobLockTimeInMillisprotected AcquireAsyncJobsDueRunnableasyncJobsDueRunnableprotected intcorePoolSizeThe minimal number of threads that are kept alive in the threadpool for job executionprotected intdefaultAsyncJobAcquireWaitTimeInMillisprotected intdefaultQueueSizeFullWaitTimeprotected intdefaultTimerJobAcquireWaitTimeInMillisprotected ExecuteAsyncRunnableFactoryexecuteAsyncRunnableFactoryprotected java.util.concurrent.ExecutorServiceexecutorServiceThe executor service used for job executionprotected booleanisActiveprotected booleanisAutoActivateprotected booleanisMessageQueueModeprotected longkeepAliveTimeThe time (in milliseconds) a thread used for job execution must be kept alive before it is destroyed.protected java.lang.StringlockOwnerprotected intmaxAsyncJobsDuePerAcquisitionprotected intmaxPoolSizeThe maximum number of threads that are kept alive in the threadpool for job executionprotected intmaxTimerJobsPerAcquisitionprotected ProcessEngineConfigurationImplprocessEngineConfigurationprotected intqueueSizeThe size of the queue on which jobs to be executed are placedprotected intresetExpiredJobsIntervalprotected intresetExpiredJobsPageSizeprotected ResetExpiredJobsRunnableresetExpiredJobsRunnableprotected java.lang.ThreadresetExpiredJobThreadprotected intretryWaitTimeInMillisprotected longsecondsToWaitOnShutdownThe time (in seconds) that is waited to gracefully shut down the threadpool used for job executionprotected java.util.LinkedList<Job>temporaryJobQueueprotected java.util.concurrent.BlockingQueue<java.lang.Runnable>threadPoolQueueThe queue used for job execution workprotected java.lang.ThreadtimerJobAcquisitionThreadprotected AcquireTimerJobsRunnabletimerJobRunnableprotected inttimerLockTimeInMillis
-
Constructor Summary
Constructors Constructor Description DefaultAsyncJobExecutor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidapplyConfig(ProcessEngineConfigurationImpl processEngineConfiguration)protected java.lang.RunnablecreateRunnableForJob(Job job)booleanexecuteAsyncJob(Job job)Offers the providedJobEntityto thisAsyncExecutorinstance to execute.protected voidexecuteTemporaryJobs()java.lang.ThreadgetAsyncJobAcquisitionThread()intgetAsyncJobLockTimeInMillis()intgetCorePoolSize()intgetDefaultAsyncJobAcquireWaitTimeInMillis()intgetDefaultQueueSizeFullWaitTimeInMillis()intgetDefaultTimerJobAcquireWaitTimeInMillis()ExecuteAsyncRunnableFactorygetExecuteAsyncRunnableFactory()java.util.concurrent.ExecutorServicegetExecutorService()longgetKeepAliveTime()java.lang.StringgetLockOwner()intgetMaxAsyncJobsDuePerAcquisition()intgetMaxPoolSize()intgetMaxTimerJobsPerAcquisition()ProcessEngineConfigurationImplgetProcessEngineConfiguration()intgetQueueSize()intgetResetExpiredJobsInterval()intgetResetExpiredJobsPageSize()java.lang.ThreadgetResetExpiredJobThread()intgetRetryWaitTimeInMillis()longgetSecondsToWaitOnShutdown()java.util.concurrent.BlockingQueue<java.lang.Runnable>getThreadPoolQueue()java.lang.ThreadgetTimerJobAcquisitionThread()intgetTimerLockTimeInMillis()protected voidinitAsyncJobExecutionThreadPool()booleanisActive()booleanisAutoActivate()booleanisMessageQueueMode()voidsetAsyncJobAcquisitionThread(java.lang.Thread asyncJobAcquisitionThread)voidsetAsyncJobLockTimeInMillis(int asyncJobLockTimeInMillis)voidsetAsyncJobsDueRunnable(AcquireAsyncJobsDueRunnable asyncJobsDueRunnable)voidsetAutoActivate(boolean isAutoActivate)voidsetCorePoolSize(int corePoolSize)voidsetDefaultAsyncJobAcquireWaitTimeInMillis(int defaultAsyncJobAcquireWaitTimeInMillis)voidsetDefaultQueueSizeFullWaitTimeInMillis(int defaultQueueSizeFullWaitTime)voidsetDefaultTimerJobAcquireWaitTimeInMillis(int defaultTimerJobAcquireWaitTimeInMillis)voidsetExecuteAsyncRunnableFactory(ExecuteAsyncRunnableFactory executeAsyncRunnableFactory)voidsetExecutorService(java.util.concurrent.ExecutorService executorService)voidsetKeepAliveTime(long keepAliveTime)voidsetLockOwner(java.lang.String lockOwner)voidsetMaxAsyncJobsDuePerAcquisition(int maxAsyncJobsDuePerAcquisition)voidsetMaxPoolSize(int maxPoolSize)voidsetMaxTimerJobsPerAcquisition(int maxTimerJobsPerAcquisition)voidsetMessageQueueMode(boolean isMessageQueueMode)voidsetProcessEngineConfiguration(ProcessEngineConfigurationImpl processEngineConfiguration)voidsetQueueSize(int queueSize)voidsetResetExpiredJobsInterval(int resetExpiredJobsInterval)voidsetResetExpiredJobsPageSize(int resetExpiredJobsPageSize)voidsetResetExpiredJobsRunnable(ResetExpiredJobsRunnable resetExpiredJobsRunnable)voidsetResetExpiredJobThread(java.lang.Thread resetExpiredJobThread)voidsetRetryWaitTimeInMillis(int retryWaitTimeInMillis)voidsetSecondsToWaitOnShutdown(long secondsToWaitOnShutdown)voidsetThreadPoolQueue(java.util.concurrent.BlockingQueue<java.lang.Runnable> threadPoolQueue)voidsetTimerJobAcquisitionThread(java.lang.Thread timerJobAcquisitionThread)voidsetTimerJobRunnable(AcquireTimerJobsRunnable timerJobRunnable)voidsetTimerLockTimeInMillis(int timerLockTimeInMillis)voidshutdown()Shuts down the whole job executorvoidstart()Starts the async executorprotected voidstartJobAcquisitionThread()Starts the acquisition threadprotected voidstartResetExpiredJobsThread()Starts the reset expired jobs threadprotected voidstartTimerAcquisitionThread()protected voidstopExecutingAsyncJobs()protected voidstopJobAcquisitionThread()Stops the acquisition threadprotected voidstopResetExpiredJobsThread()Stops the reset expired jobs threadprotected voidstopTimerAcquisitionThread()
-
-
-
Field Detail
-
corePoolSize
protected int corePoolSize
The minimal number of threads that are kept alive in the threadpool for job execution
-
maxPoolSize
protected int maxPoolSize
The maximum number of threads that are kept alive in the threadpool for job execution
-
keepAliveTime
protected long keepAliveTime
The time (in milliseconds) a thread used for job execution must be kept alive before it is destroyed. Default setting is 0. Having a non-default setting of 0 takes resources, but in the case of many job executions it avoids creating new threads all the time.
-
queueSize
protected int queueSize
The size of the queue on which jobs to be executed are placed
-
threadPoolQueue
protected java.util.concurrent.BlockingQueue<java.lang.Runnable> threadPoolQueue
The queue used for job execution work
-
executorService
protected java.util.concurrent.ExecutorService executorService
The executor service used for job execution
-
secondsToWaitOnShutdown
protected long secondsToWaitOnShutdown
The time (in seconds) that is waited to gracefully shut down the threadpool used for job execution
-
timerJobAcquisitionThread
protected java.lang.Thread timerJobAcquisitionThread
-
asyncJobAcquisitionThread
protected java.lang.Thread asyncJobAcquisitionThread
-
resetExpiredJobThread
protected java.lang.Thread resetExpiredJobThread
-
timerJobRunnable
protected AcquireTimerJobsRunnable timerJobRunnable
-
asyncJobsDueRunnable
protected AcquireAsyncJobsDueRunnable asyncJobsDueRunnable
-
resetExpiredJobsRunnable
protected ResetExpiredJobsRunnable resetExpiredJobsRunnable
-
executeAsyncRunnableFactory
protected ExecuteAsyncRunnableFactory executeAsyncRunnableFactory
-
isAutoActivate
protected boolean isAutoActivate
-
isActive
protected boolean isActive
-
isMessageQueueMode
protected boolean isMessageQueueMode
-
maxTimerJobsPerAcquisition
protected int maxTimerJobsPerAcquisition
-
maxAsyncJobsDuePerAcquisition
protected int maxAsyncJobsDuePerAcquisition
-
defaultTimerJobAcquireWaitTimeInMillis
protected int defaultTimerJobAcquireWaitTimeInMillis
-
defaultAsyncJobAcquireWaitTimeInMillis
protected int defaultAsyncJobAcquireWaitTimeInMillis
-
defaultQueueSizeFullWaitTime
protected int defaultQueueSizeFullWaitTime
-
lockOwner
protected java.lang.String lockOwner
-
timerLockTimeInMillis
protected int timerLockTimeInMillis
-
asyncJobLockTimeInMillis
protected int asyncJobLockTimeInMillis
-
retryWaitTimeInMillis
protected int retryWaitTimeInMillis
-
resetExpiredJobsInterval
protected int resetExpiredJobsInterval
-
resetExpiredJobsPageSize
protected int resetExpiredJobsPageSize
-
temporaryJobQueue
protected java.util.LinkedList<Job> temporaryJobQueue
-
processEngineConfiguration
protected ProcessEngineConfigurationImpl processEngineConfiguration
-
-
Method Detail
-
executeAsyncJob
public boolean executeAsyncJob(Job job)
Description copied from interface:AsyncExecutorOffers the providedJobEntityto thisAsyncExecutorinstance to execute. If the offering does not work for some reason, false will be returned (For example when the job queue is full in theDefaultAsyncJobExecutor).- Specified by:
executeAsyncJobin interfaceAsyncExecutor
-
createRunnableForJob
protected java.lang.Runnable createRunnableForJob(Job job)
-
start
public void start()
Starts the async executor- Specified by:
startin interfaceAsyncExecutor
-
executeTemporaryJobs
protected void executeTemporaryJobs()
-
shutdown
public void shutdown()
Shuts down the whole job executor- Specified by:
shutdownin interfaceAsyncExecutor
-
initAsyncJobExecutionThreadPool
protected void initAsyncJobExecutionThreadPool()
-
stopExecutingAsyncJobs
protected void stopExecutingAsyncJobs()
-
startJobAcquisitionThread
protected void startJobAcquisitionThread()
Starts the acquisition thread
-
startTimerAcquisitionThread
protected void startTimerAcquisitionThread()
-
stopJobAcquisitionThread
protected void stopJobAcquisitionThread()
Stops the acquisition thread
-
stopTimerAcquisitionThread
protected void stopTimerAcquisitionThread()
-
startResetExpiredJobsThread
protected void startResetExpiredJobsThread()
Starts the reset expired jobs thread
-
stopResetExpiredJobsThread
protected void stopResetExpiredJobsThread()
Stops the reset expired jobs thread
-
applyConfig
public void applyConfig(ProcessEngineConfigurationImpl processEngineConfiguration)
-
getProcessEngineConfiguration
public ProcessEngineConfigurationImpl getProcessEngineConfiguration()
- Specified by:
getProcessEngineConfigurationin interfaceAsyncExecutor
-
setProcessEngineConfiguration
public void setProcessEngineConfiguration(ProcessEngineConfigurationImpl processEngineConfiguration)
- Specified by:
setProcessEngineConfigurationin interfaceAsyncExecutor
-
getTimerJobAcquisitionThread
public java.lang.Thread getTimerJobAcquisitionThread()
-
setTimerJobAcquisitionThread
public void setTimerJobAcquisitionThread(java.lang.Thread timerJobAcquisitionThread)
-
getAsyncJobAcquisitionThread
public java.lang.Thread getAsyncJobAcquisitionThread()
-
setAsyncJobAcquisitionThread
public void setAsyncJobAcquisitionThread(java.lang.Thread asyncJobAcquisitionThread)
-
getResetExpiredJobThread
public java.lang.Thread getResetExpiredJobThread()
-
setResetExpiredJobThread
public void setResetExpiredJobThread(java.lang.Thread resetExpiredJobThread)
-
isAutoActivate
public boolean isAutoActivate()
- Specified by:
isAutoActivatein interfaceAsyncExecutor
-
setAutoActivate
public void setAutoActivate(boolean isAutoActivate)
- Specified by:
setAutoActivatein interfaceAsyncExecutor
-
isActive
public boolean isActive()
- Specified by:
isActivein interfaceAsyncExecutor
-
isMessageQueueMode
public boolean isMessageQueueMode()
-
setMessageQueueMode
public void setMessageQueueMode(boolean isMessageQueueMode)
-
getQueueSize
public int getQueueSize()
-
setQueueSize
public void setQueueSize(int queueSize)
-
getCorePoolSize
public int getCorePoolSize()
-
setCorePoolSize
public void setCorePoolSize(int corePoolSize)
-
getMaxPoolSize
public int getMaxPoolSize()
-
setMaxPoolSize
public void setMaxPoolSize(int maxPoolSize)
-
getKeepAliveTime
public long getKeepAliveTime()
-
setKeepAliveTime
public void setKeepAliveTime(long keepAliveTime)
-
getSecondsToWaitOnShutdown
public long getSecondsToWaitOnShutdown()
-
setSecondsToWaitOnShutdown
public void setSecondsToWaitOnShutdown(long secondsToWaitOnShutdown)
-
getThreadPoolQueue
public java.util.concurrent.BlockingQueue<java.lang.Runnable> getThreadPoolQueue()
-
setThreadPoolQueue
public void setThreadPoolQueue(java.util.concurrent.BlockingQueue<java.lang.Runnable> threadPoolQueue)
-
getExecutorService
public java.util.concurrent.ExecutorService getExecutorService()
-
setExecutorService
public void setExecutorService(java.util.concurrent.ExecutorService executorService)
-
getLockOwner
public java.lang.String getLockOwner()
- Specified by:
getLockOwnerin interfaceAsyncExecutor
-
setLockOwner
public void setLockOwner(java.lang.String lockOwner)
-
getTimerLockTimeInMillis
public int getTimerLockTimeInMillis()
- Specified by:
getTimerLockTimeInMillisin interfaceAsyncExecutor
-
setTimerLockTimeInMillis
public void setTimerLockTimeInMillis(int timerLockTimeInMillis)
- Specified by:
setTimerLockTimeInMillisin interfaceAsyncExecutor
-
getAsyncJobLockTimeInMillis
public int getAsyncJobLockTimeInMillis()
- Specified by:
getAsyncJobLockTimeInMillisin interfaceAsyncExecutor
-
setAsyncJobLockTimeInMillis
public void setAsyncJobLockTimeInMillis(int asyncJobLockTimeInMillis)
- Specified by:
setAsyncJobLockTimeInMillisin interfaceAsyncExecutor
-
getMaxTimerJobsPerAcquisition
public int getMaxTimerJobsPerAcquisition()
- Specified by:
getMaxTimerJobsPerAcquisitionin interfaceAsyncExecutor
-
setMaxTimerJobsPerAcquisition
public void setMaxTimerJobsPerAcquisition(int maxTimerJobsPerAcquisition)
- Specified by:
setMaxTimerJobsPerAcquisitionin interfaceAsyncExecutor
-
getMaxAsyncJobsDuePerAcquisition
public int getMaxAsyncJobsDuePerAcquisition()
- Specified by:
getMaxAsyncJobsDuePerAcquisitionin interfaceAsyncExecutor
-
setMaxAsyncJobsDuePerAcquisition
public void setMaxAsyncJobsDuePerAcquisition(int maxAsyncJobsDuePerAcquisition)
- Specified by:
setMaxAsyncJobsDuePerAcquisitionin interfaceAsyncExecutor
-
getDefaultTimerJobAcquireWaitTimeInMillis
public int getDefaultTimerJobAcquireWaitTimeInMillis()
- Specified by:
getDefaultTimerJobAcquireWaitTimeInMillisin interfaceAsyncExecutor
-
setDefaultTimerJobAcquireWaitTimeInMillis
public void setDefaultTimerJobAcquireWaitTimeInMillis(int defaultTimerJobAcquireWaitTimeInMillis)
- Specified by:
setDefaultTimerJobAcquireWaitTimeInMillisin interfaceAsyncExecutor
-
getDefaultAsyncJobAcquireWaitTimeInMillis
public int getDefaultAsyncJobAcquireWaitTimeInMillis()
- Specified by:
getDefaultAsyncJobAcquireWaitTimeInMillisin interfaceAsyncExecutor
-
setDefaultAsyncJobAcquireWaitTimeInMillis
public void setDefaultAsyncJobAcquireWaitTimeInMillis(int defaultAsyncJobAcquireWaitTimeInMillis)
- Specified by:
setDefaultAsyncJobAcquireWaitTimeInMillisin interfaceAsyncExecutor
-
setTimerJobRunnable
public void setTimerJobRunnable(AcquireTimerJobsRunnable timerJobRunnable)
-
getDefaultQueueSizeFullWaitTimeInMillis
public int getDefaultQueueSizeFullWaitTimeInMillis()
- Specified by:
getDefaultQueueSizeFullWaitTimeInMillisin interfaceAsyncExecutor
-
setDefaultQueueSizeFullWaitTimeInMillis
public void setDefaultQueueSizeFullWaitTimeInMillis(int defaultQueueSizeFullWaitTime)
- Specified by:
setDefaultQueueSizeFullWaitTimeInMillisin interfaceAsyncExecutor
-
setAsyncJobsDueRunnable
public void setAsyncJobsDueRunnable(AcquireAsyncJobsDueRunnable asyncJobsDueRunnable)
-
setResetExpiredJobsRunnable
public void setResetExpiredJobsRunnable(ResetExpiredJobsRunnable resetExpiredJobsRunnable)
-
getRetryWaitTimeInMillis
public int getRetryWaitTimeInMillis()
- Specified by:
getRetryWaitTimeInMillisin interfaceAsyncExecutor
-
setRetryWaitTimeInMillis
public void setRetryWaitTimeInMillis(int retryWaitTimeInMillis)
- Specified by:
setRetryWaitTimeInMillisin interfaceAsyncExecutor
-
getResetExpiredJobsInterval
public int getResetExpiredJobsInterval()
- Specified by:
getResetExpiredJobsIntervalin interfaceAsyncExecutor
-
setResetExpiredJobsInterval
public void setResetExpiredJobsInterval(int resetExpiredJobsInterval)
- Specified by:
setResetExpiredJobsIntervalin interfaceAsyncExecutor
-
getResetExpiredJobsPageSize
public int getResetExpiredJobsPageSize()
- Specified by:
getResetExpiredJobsPageSizein interfaceAsyncExecutor
-
setResetExpiredJobsPageSize
public void setResetExpiredJobsPageSize(int resetExpiredJobsPageSize)
- Specified by:
setResetExpiredJobsPageSizein interfaceAsyncExecutor
-
getExecuteAsyncRunnableFactory
public ExecuteAsyncRunnableFactory getExecuteAsyncRunnableFactory()
-
setExecuteAsyncRunnableFactory
public void setExecuteAsyncRunnableFactory(ExecuteAsyncRunnableFactory executeAsyncRunnableFactory)
-
-