public interface ThreadPool
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 Runnable
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.
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
.
SchedulerConfigException
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.
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 2001-2019, Terracotta, Inc.