org.quartz.simpl
Class ZeroSizeThreadPool

java.lang.Object
  extended by org.quartz.simpl.ZeroSizeThreadPool
All Implemented Interfaces:
ThreadPool

public class ZeroSizeThreadPool
extends java.lang.Object
implements ThreadPool

This is class is a simple implementation of a zero size thread pool, based on the ThreadPool interface.

The pool has zero Threads and does not grow or shrink based on demand. Which means it is obviously not useful for most scenarios. When it may be useful is to prevent creating any worker threads at all - which may be desirable for the sole purpose of preserving system resources in the case where the scheduler instance only exists in order to schedule jobs, but which will never execute jobs (e.g. will never have start() called on it).

Author:
Wayne Fay

Constructor Summary
ZeroSizeThreadPool()
           Create a new ZeroSizeThreadPool.
 
Method Summary
 int blockForAvailableThreads()
           Determines the number of threads that are currently available in in the pool.
 org.slf4j.Logger getLog()
           
 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(java.lang.Runnable runnable)
           Execute the given Runnable in the next available Thread.
 void setInstanceId(java.lang.String schedInstId)
          Inform the ThreadPool of the Scheduler instance's Id, prior to initialize being invoked.
 void setInstanceName(java.lang.String schedName)
          Inform the ThreadPool of the Scheduler instance's name, prior to initialize being invoked.
 void shutdown()
           
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ZeroSizeThreadPool

public ZeroSizeThreadPool()

Create a new ZeroSizeThreadPool.

Method Detail

getLog

public org.slf4j.Logger getLog()

getPoolSize

public int getPoolSize()
Description copied from interface: ThreadPool

Get the current number of threads in the ThreadPool.

Specified by:
getPoolSize in interface ThreadPool

initialize

public void initialize()
                throws SchedulerConfigException
Description copied from interface: ThreadPool

Must be called before the ThreadPool is used, in order to give the it a chance to initialize.

Typically called by the SchedulerFactory.

Specified by:
initialize in interface ThreadPool
Throws:
SchedulerConfigException

shutdown

public void shutdown()

shutdown

public void shutdown(boolean waitForJobsToComplete)
Description copied from interface: ThreadPool

Called by the QuartzScheduler to inform the ThreadPool that it should free up all of it's resources because the scheduler is shutting down.

Specified by:
shutdown in interface ThreadPool

runInThread

public boolean runInThread(java.lang.Runnable runnable)
Description copied from interface: ThreadPool

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.

Specified by:
runInThread in interface ThreadPool
Returns:
true, if the runnable was assigned to run on a Thread.

blockForAvailableThreads

public int blockForAvailableThreads()
Description copied from interface: ThreadPool

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.

Specified by:
blockForAvailableThreads in interface ThreadPool
Returns:
the number of currently available threads

setInstanceId

public void setInstanceId(java.lang.String schedInstId)
Description copied from interface: ThreadPool

Inform the ThreadPool of the Scheduler instance's Id, prior to initialize being invoked.

Specified by:
setInstanceId in interface ThreadPool

setInstanceName

public void setInstanceName(java.lang.String schedName)
Description copied from interface: ThreadPool

Inform the ThreadPool of the Scheduler instance's name, prior to initialize being invoked.

Specified by:
setInstanceName in interface ThreadPool


Copyright 2001-2019, Terracotta, Inc.