Interface ThreadPool

All Known Implementing Classes:
SimpleThreadPool

public interface ThreadPool
The interface to be implemented by classes that want to provide a thread pool for the 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 Type
    Method
    Description
    int
    Determines the number of threads that are currently available in in the pool.
    int
    Get the current number of threads in the ThreadPool.
    void
    Must be called before the ThreadPool is used, in order to give the it a chance to initialize.
    boolean
    Execute the given Runnable in the next available Thread .
    void
    Called by the QuartzScheduler to inform the ThreadPool that it should free up all of it's resources because the scheduler is shutting down.
  • Method Details

    • runInThread

      boolean runInThread(JobRunShell runnable)
      Execute the given Runnable in the next available 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 times runInThread(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

      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.

      Throws:
      SchedulerConfigException
    • shutdown

      void shutdown()
      Called by the QuartzScheduler to inform the ThreadPool 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 the ThreadPool.