Class DefaultAsyncJobExecutor
java.lang.Object
org.activiti.engine.impl.asyncexecutor.DefaultAsyncJobExecutor
- All Implemented Interfaces:
AsyncExecutor
- Direct Known Subclasses:
ManagedAsyncJobExecutor,SharedExecutorServiceAsyncExecutor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Threadprotected intprotected AcquireAsyncJobsDueRunnableprotected intThe minimal number of threads that are kept alive in the threadpool for job executionprotected intprotected intprotected intprotected ExecuteAsyncRunnableFactoryprotected ExecutorServiceThe executor service used for job executionprotected booleanprotected booleanprotected booleanprotected longThe time (in milliseconds) a thread used for job execution must be kept alive before it is destroyed.protected Stringprotected intprotected intThe maximum number of threads that are kept alive in the threadpool for job executionprotected intprotected ProcessEngineConfigurationImplprotected intThe size of the queue on which jobs to be executed are placedprotected intprotected intprotected ResetExpiredJobsRunnableprotected Threadprotected intprotected longThe time (in seconds) that is waited to gracefully shut down the threadpool used for job executionprotected LinkedList<Job> protected BlockingQueue<Runnable> The queue used for job execution workprotected Threadprotected AcquireTimerJobsRunnableprotected int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidapplyConfig(ProcessEngineConfigurationImpl processEngineConfiguration) protected RunnablecreateRunnableForJob(Job job) booleanexecuteAsyncJob(Job job) Offers the providedJobEntityto thisAsyncExecutorinstance to execute.protected voidintintintintintlongintintintintintintintlongintprotected voidbooleanisActive()booleanbooleanvoidsetAsyncJobAcquisitionThread(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(ExecutorService executorService) voidsetKeepAliveTime(long keepAliveTime) voidsetLockOwner(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(Thread resetExpiredJobThread) voidsetRetryWaitTimeInMillis(int retryWaitTimeInMillis) voidsetSecondsToWaitOnShutdown(long secondsToWaitOnShutdown) voidsetThreadPoolQueue(BlockingQueue<Runnable> threadPoolQueue) voidsetTimerJobAcquisitionThread(Thread timerJobAcquisitionThread) voidsetTimerJobRunnable(AcquireTimerJobsRunnable timerJobRunnable) voidsetTimerLockTimeInMillis(int timerLockTimeInMillis) voidshutdown()Shuts down the whole job executorvoidstart()Starts the async executorprotected voidStarts the acquisition threadprotected voidStarts the reset expired jobs threadprotected voidprotected voidprotected voidStops the acquisition threadprotected voidStops the reset expired jobs threadprotected void
-
Field Details
-
corePoolSize
protected int corePoolSizeThe minimal number of threads that are kept alive in the threadpool for job execution -
maxPoolSize
protected int maxPoolSizeThe maximum number of threads that are kept alive in the threadpool for job execution -
keepAliveTime
protected long keepAliveTimeThe 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 queueSizeThe size of the queue on which jobs to be executed are placed -
threadPoolQueue
The queue used for job execution work -
executorService
The executor service used for job execution -
secondsToWaitOnShutdown
protected long secondsToWaitOnShutdownThe time (in seconds) that is waited to gracefully shut down the threadpool used for job execution -
timerJobAcquisitionThread
-
asyncJobAcquisitionThread
-
resetExpiredJobThread
-
timerJobRunnable
-
asyncJobsDueRunnable
-
resetExpiredJobsRunnable
-
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
-
timerLockTimeInMillis
protected int timerLockTimeInMillis -
asyncJobLockTimeInMillis
protected int asyncJobLockTimeInMillis -
retryWaitTimeInMillis
protected int retryWaitTimeInMillis -
resetExpiredJobsInterval
protected int resetExpiredJobsInterval -
resetExpiredJobsPageSize
protected int resetExpiredJobsPageSize -
temporaryJobQueue
-
processEngineConfiguration
-
-
Constructor Details
-
DefaultAsyncJobExecutor
public DefaultAsyncJobExecutor()
-
-
Method Details
-
executeAsyncJob
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
-
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
-
getProcessEngineConfiguration
- Specified by:
getProcessEngineConfigurationin interfaceAsyncExecutor
-
setProcessEngineConfiguration
public void setProcessEngineConfiguration(ProcessEngineConfigurationImpl processEngineConfiguration) - Specified by:
setProcessEngineConfigurationin interfaceAsyncExecutor
-
getTimerJobAcquisitionThread
-
setTimerJobAcquisitionThread
-
getAsyncJobAcquisitionThread
-
setAsyncJobAcquisitionThread
-
getResetExpiredJobThread
-
setResetExpiredJobThread
-
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
-
setThreadPoolQueue
-
getExecutorService
-
setExecutorService
-
getLockOwner
- Specified by:
getLockOwnerin interfaceAsyncExecutor
-
setLockOwner
-
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
-
getDefaultQueueSizeFullWaitTimeInMillis
public int getDefaultQueueSizeFullWaitTimeInMillis()- Specified by:
getDefaultQueueSizeFullWaitTimeInMillisin interfaceAsyncExecutor
-
setDefaultQueueSizeFullWaitTimeInMillis
public void setDefaultQueueSizeFullWaitTimeInMillis(int defaultQueueSizeFullWaitTime) - Specified by:
setDefaultQueueSizeFullWaitTimeInMillisin interfaceAsyncExecutor
-
setAsyncJobsDueRunnable
-
setResetExpiredJobsRunnable
-
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
-
setExecuteAsyncRunnableFactory
-