public interface IThreadPool
The interface to be implemented by classes that want to provide a thread pool
for the 's use.
QuartzScheduler
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.
QuartzScheduler| Modifier and Type | Method and Description |
|---|---|
int |
blockForAvailableThreads()
Determines the number of threads that are currently available in in the
pool.
|
int |
getPoolSize()
Get the current number of threads in the
ThreadPool. |
void |
initialize()
Must be called before the
ThreadPool is used, in order to give
the it a chance to initialize. |
boolean |
runInThread(Runnable runnable)
Execute the given
in the next
available Thread. |
void |
setInstanceId(String schedInstId)
Inform the
ThreadPool of the Scheduler instance's Id, prior to
initialize being invoked. |
void |
setInstanceName(String schedName)
Inform the
ThreadPool of the Scheduler instance's name, prior
to initialize being invoked. |
void |
shutdown(boolean waitForJobsToComplete)
Called by the QuartzScheduler to inform the
ThreadPool that it
should free up all of it's resources because the scheduler is shutting
down. |
boolean runInThread(Runnable runnable)
Execute the given in the next
available RunnableThread.
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.
int blockForAvailableThreads()
Determines the number of threads that are currently available in in the
pool. Useful for determining the number of times
runInThread(Runnable) can be called before returning false.
The implementation of this method should block until there is at least one available thread.
void initialize()
throws SchedulerConfigException
Must be called before the ThreadPool is used, in order to give
the it a chance to initialize.
Typically called by the SchedulerFactory.
SchedulerConfigExceptionvoid shutdown(boolean waitForJobsToComplete)
Called by the QuartzScheduler to inform the ThreadPool that it
should free up all of it's resources because the scheduler is shutting
down.
int getPoolSize()
Get the current number of threads in the ThreadPool.
void setInstanceId(String schedInstId)
Inform the ThreadPool of the Scheduler instance's Id, prior to
initialize being invoked.
void setInstanceName(String schedName)
Inform the ThreadPool of the Scheduler instance's name, prior
to initialize being invoked.
Copyright © 2016–2021 Philip Helger. All rights reserved.