Interface ThreadPool
- All Known Implementing Classes:
SimpleThreadPool
QuartzScheduler
's use.
ThreadPool
implementation instances should ideally be made for the sole use of
Quartz. Most importantly, when the method blockForAvailableThreads()
returns a value
of 1 or greater, there must still be at least one available thread in the pool when the method
runInThread(Runnable)
is called a few moments (or many moments) later. If this
assumption does not hold true, it may result in extra JobStore queries and updates, and if
clustering features are being used, it may result in greater imballance of load.
- Author:
- James House
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionint
Determines the number of threads that are currently available in in the pool.int
Get the current number of threads in theThreadPool
.void
Must be called before theThreadPool
is used, in order to give the it a chance to initialize.boolean
runInThread
(JobRunShell runnable) Execute the given
in the next availableRunnable
Thread
.void
shutdown()
Called by the QuartzScheduler to inform theThreadPool
that it should free up all of it's resources because the scheduler is shutting down.
-
Method Details
-
runInThread
Execute the given
in the next availableRunnable
Thread
.The implementation of this interface should not throw exceptions unless there is a serious problem (i.e. a serious misconfiguration). If there are no immediately available threads
false
should be returned.- Returns:
- true, if the runnable was assigned to run on a Thread.
-
blockForAvailableThreads
int blockForAvailableThreads()Determines the number of threads that are currently available in in the pool. Useful for determining the number of timesrunInThread(Runnable)
can be called before returning false.The implementation of this method should block until there is at least one available thread.
- Returns:
- the number of currently available threads
-
initialize
Must be called before theThreadPool
is used, in order to give the it a chance to initialize.Typically called by the
SchedulerFactory
.- Throws:
SchedulerConfigException
-
shutdown
void shutdown()Called by the QuartzScheduler to inform theThreadPool
that it should free up all of it's resources because the scheduler is shutting down. -
getPoolSize
int getPoolSize()Get the current number of threads in theThreadPool
.
-