Class DirectSchedulerFactory
- java.lang.Object
-
- org.quartz.impl.DirectSchedulerFactory
-
- All Implemented Interfaces:
SchedulerFactory
public class DirectSchedulerFactory extends java.lang.Object implements SchedulerFactory
A singleton implementation of
.SchedulerFactoryHere are some examples of using this class:
To create a scheduler that does not write anything to the database (is not persistent), you can call
createVolatileScheduler:DirectSchedulerFactory.getInstance().createVolatileScheduler(10); // 10 threads * // don't forget to start the scheduler: DirectSchedulerFactory.getInstance().getScheduler().start();
Several create methods are provided for convenience. All create methods eventually end up calling the create method with all the parameters:
public void createScheduler(String schedulerName, String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, String rmiRegistryHost, int rmiRegistryPort)
Here is an example of using this method:
* *// create the thread pool SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, Thread.NORM_PRIORITY); threadPool.initialize(); * // create the job store JobStore jobStore = new RAMJobStore(); DirectSchedulerFactory.getInstance().createScheduler("My Quartz Scheduler", "My Instance", threadPool, jobStore, "localhost", 1099); * // don't forget to start the scheduler: DirectSchedulerFactory.getInstance().getScheduler("My Quartz Scheduler", "My Instance").start();You can also use a JDBCJobStore instead of the RAMJobStore:
DBConnectionManager.getInstance().addConnectionProvider("someDatasource", new JNDIConnectionProvider("someDatasourceJNDIName")); JobStoreTX jdbcJobStore = new JobStoreTX(); jdbcJobStore.setDataSource("someDatasource"); jdbcJobStore.setPostgresStyleBlobs(true); jdbcJobStore.setTablePrefix("QRTZ_"); jdbcJobStore.setInstanceId("My Instance");- Author:
- Mohammad Rezaei, James House
- See Also:
JobStore,ThreadPool
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDEFAULT_INSTANCE_IDstatic java.lang.StringDEFAULT_SCHEDULER_NAME
-
Constructor Summary
Constructors Modifier Constructor Description protectedDirectSchedulerFactory()Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcreateRemoteScheduler(java.lang.String rmiHost, int rmiPort)Creates a proxy to a remote scheduler.voidcreateRemoteScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, java.lang.String rmiHost, int rmiPort)Same ascreateRemoteScheduler(String rmiHost, int rmiPort), with the addition of specifying the scheduler name and instance ID.voidcreateRemoteScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, java.lang.String rmiBindName, java.lang.String rmiHost, int rmiPort)Same ascreateRemoteScheduler(String rmiHost, int rmiPort), with the addition of specifying the scheduler name, instance ID, and rmi bind name.voidcreateScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore)Same ascreateScheduler(ThreadPool threadPool, JobStore jobStore), with the addition of specifying the scheduler name and instance ID.voidcreateScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval)Creates a scheduler using the specified thread pool and job store and binds it to RMI.voidcreateScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, java.util.Map<java.lang.String,SchedulerPlugin> schedulerPluginMap, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, java.lang.String jmxObjectName)Creates a scheduler using the specified thread pool, job store, and plugins, and binds it to RMI.voidcreateScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, ThreadExecutor threadExecutor, JobStore jobStore, java.util.Map<java.lang.String,SchedulerPlugin> schedulerPluginMap, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, java.lang.String jmxObjectName)Creates a scheduler using the specified thread pool, job store, and plugins, and binds it to RMI.voidcreateScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, ThreadExecutor threadExecutor, JobStore jobStore, java.util.Map<java.lang.String,SchedulerPlugin> schedulerPluginMap, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, java.lang.String jmxObjectName, int maxBatchSize, long batchTimeWindow)Creates a scheduler using the specified thread pool, job store, and plugins, and binds it to RMI.voidcreateScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, ThreadExecutor threadExecutor, JobStore jobStore, java.util.Map<java.lang.String,SchedulerPlugin> schedulerPluginMap, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, java.lang.String jmxObjectName, int maxBatchSize, long batchTimeWindow, boolean makeSchedThreadDaemon)Creates a scheduler using the specified thread pool, job store, and plugins, and binds it to RMI.voidcreateScheduler(ThreadPool threadPool, JobStore jobStore)Creates a scheduler using the specified thread pool and job store.voidcreateVolatileScheduler(int maxThreads)Creates an in memory job store () The thread priority is set to Thread.NORM_PRIORITYRAMJobStorejava.util.Collection<Scheduler>getAllSchedulers()Returns a handle to all known Schedulers (made by any StdSchedulerFactory instance.).static DirectSchedulerFactorygetInstance()protected org.slf4j.LoggergetLog()SchedulergetScheduler()Returns a handle to the Scheduler produced by this factory.SchedulergetScheduler(java.lang.String schedName)Returns a handle to the Scheduler with the given name, if it exists.
-
-
-
Field Detail
-
DEFAULT_INSTANCE_ID
public static final java.lang.String DEFAULT_INSTANCE_ID
- See Also:
- Constant Field Values
-
DEFAULT_SCHEDULER_NAME
public static final java.lang.String DEFAULT_SCHEDULER_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
getLog
protected org.slf4j.Logger getLog()
-
getInstance
public static DirectSchedulerFactory getInstance()
-
createVolatileScheduler
public void createVolatileScheduler(int maxThreads) throws SchedulerExceptionCreates an in memory job store () The thread priority is set to Thread.NORM_PRIORITYRAMJobStore- Parameters:
maxThreads- The number of threads in the thread pool- Throws:
SchedulerException- if initialization failed.
-
createRemoteScheduler
public void createRemoteScheduler(java.lang.String rmiHost, int rmiPort) throws SchedulerExceptionCreates a proxy to a remote scheduler. This scheduler can be retrieved viagetScheduler()- Parameters:
rmiHost- The hostname for remote schedulerrmiPort- Port for the remote scheduler. The default RMI port is 1099.- Throws:
SchedulerException- if the remote scheduler could not be reached.
-
createRemoteScheduler
public void createRemoteScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, java.lang.String rmiHost, int rmiPort) throws SchedulerExceptionSame ascreateRemoteScheduler(String rmiHost, int rmiPort), with the addition of specifying the scheduler name and instance ID. This scheduler can only be retrieved viagetScheduler(String)- Parameters:
schedulerName- The name for the scheduler.schedulerInstanceId- The instance ID for the scheduler.rmiHost- The hostname for remote schedulerrmiPort- Port for the remote scheduler. The default RMI port is 1099.- Throws:
SchedulerException- if the remote scheduler could not be reached.
-
createRemoteScheduler
public void createRemoteScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, java.lang.String rmiBindName, java.lang.String rmiHost, int rmiPort) throws SchedulerExceptionSame ascreateRemoteScheduler(String rmiHost, int rmiPort), with the addition of specifying the scheduler name, instance ID, and rmi bind name. This scheduler can only be retrieved viagetScheduler(String)- Parameters:
schedulerName- The name for the scheduler.schedulerInstanceId- The instance ID for the scheduler.rmiBindName- The name of the remote scheduler in the RMI repository. If null defaults to the generated unique identifier.rmiHost- The hostname for remote schedulerrmiPort- Port for the remote scheduler. The default RMI port is 1099.- Throws:
SchedulerException- if the remote scheduler could not be reached.
-
createScheduler
public void createScheduler(ThreadPool threadPool, JobStore jobStore) throws SchedulerException
Creates a scheduler using the specified thread pool and job store. This scheduler can be retrieved viagetScheduler()- Parameters:
threadPool- The thread pool for executing jobsjobStore- The type of job store- Throws:
SchedulerException- if initialization failed
-
createScheduler
public void createScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore) throws SchedulerExceptionSame ascreateScheduler(ThreadPool threadPool, JobStore jobStore), with the addition of specifying the scheduler name and instance ID. This scheduler can only be retrieved viagetScheduler(String)- Parameters:
schedulerName- The name for the scheduler.schedulerInstanceId- The instance ID for the scheduler.threadPool- The thread pool for executing jobsjobStore- The type of job store- Throws:
SchedulerException- if initialization failed
-
createScheduler
public void createScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval) throws SchedulerExceptionCreates a scheduler using the specified thread pool and job store and binds it to RMI.- Parameters:
schedulerName- The name for the scheduler.schedulerInstanceId- The instance ID for the scheduler.threadPool- The thread pool for executing jobsjobStore- The type of job storermiRegistryHost- The hostname to register this scheduler with for RMI. Can use "null" if no RMI is required.rmiRegistryPort- The port for RMI. Typically 1099.idleWaitTime- The idle wait time in milliseconds. You can specify "-1" for the default value, which is currently 30000 ms.- Throws:
SchedulerException- if initialization failed
-
createScheduler
public void createScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, java.util.Map<java.lang.String,SchedulerPlugin> schedulerPluginMap, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, java.lang.String jmxObjectName) throws SchedulerExceptionCreates a scheduler using the specified thread pool, job store, and plugins, and binds it to RMI.- Parameters:
schedulerName- The name for the scheduler.schedulerInstanceId- The instance ID for the scheduler.threadPool- The thread pool for executing jobsjobStore- The type of job storeschedulerPluginMap- Map from aStringplugin names tos. Can use "null" if no plugins are required.SchedulerPluginrmiRegistryHost- The hostname to register this scheduler with for RMI. Can use "null" if no RMI is required.rmiRegistryPort- The port for RMI. Typically 1099.idleWaitTime- The idle wait time in milliseconds. You can specify "-1" for the default value, which is currently 30000 ms.- Throws:
SchedulerException- if initialization failed
-
createScheduler
public void createScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, ThreadExecutor threadExecutor, JobStore jobStore, java.util.Map<java.lang.String,SchedulerPlugin> schedulerPluginMap, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, java.lang.String jmxObjectName) throws SchedulerExceptionCreates a scheduler using the specified thread pool, job store, and plugins, and binds it to RMI.- Parameters:
schedulerName- The name for the scheduler.schedulerInstanceId- The instance ID for the scheduler.threadPool- The thread pool for executing jobsthreadExecutor- The thread executor for executing jobsjobStore- The type of job storeschedulerPluginMap- Map from aStringplugin names tos. Can use "null" if no plugins are required.SchedulerPluginrmiRegistryHost- The hostname to register this scheduler with for RMI. Can use "null" if no RMI is required.rmiRegistryPort- The port for RMI. Typically 1099.idleWaitTime- The idle wait time in milliseconds. You can specify "-1" for the default value, which is currently 30000 ms.- Throws:
SchedulerException- if initialization failed
-
createScheduler
public void createScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, ThreadExecutor threadExecutor, JobStore jobStore, java.util.Map<java.lang.String,SchedulerPlugin> schedulerPluginMap, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, java.lang.String jmxObjectName, int maxBatchSize, long batchTimeWindow) throws SchedulerExceptionCreates a scheduler using the specified thread pool, job store, and plugins, and binds it to RMI.- Parameters:
schedulerName- The name for the scheduler.schedulerInstanceId- The instance ID for the scheduler.threadPool- The thread pool for executing jobsthreadExecutor- The thread executor for executing jobsjobStore- The type of job storeschedulerPluginMap- Map from aStringplugin names tos. Can use "null" if no plugins are required.SchedulerPluginrmiRegistryHost- The hostname to register this scheduler with for RMI. Can use "null" if no RMI is required.rmiRegistryPort- The port for RMI. Typically 1099.idleWaitTime- The idle wait time in milliseconds. You can specify "-1" for the default value, which is currently 30000 ms.maxBatchSize- The maximum batch size of triggers, when acquiring thembatchTimeWindow- The time window for which it is allowed to "pre-acquire" triggers to fire- Throws:
SchedulerException- if initialization failed
-
createScheduler
public void createScheduler(java.lang.String schedulerName, java.lang.String schedulerInstanceId, ThreadPool threadPool, ThreadExecutor threadExecutor, JobStore jobStore, java.util.Map<java.lang.String,SchedulerPlugin> schedulerPluginMap, java.lang.String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, java.lang.String jmxObjectName, int maxBatchSize, long batchTimeWindow, boolean makeSchedThreadDaemon) throws SchedulerExceptionCreates a scheduler using the specified thread pool, job store, and plugins, and binds it to RMI.- Parameters:
schedulerName- The name for the scheduler.schedulerInstanceId- The instance ID for the scheduler.threadPool- The thread pool for executing jobsthreadExecutor- The thread executor for executing jobsjobStore- The type of job storeschedulerPluginMap- Map from aStringplugin names tos. Can use "null" if no plugins are required.SchedulerPluginrmiRegistryHost- The hostname to register this scheduler with for RMI. Can use "null" if no RMI is required.rmiRegistryPort- The port for RMI. Typically 1099.idleWaitTime- The idle wait time in milliseconds. You can specify "-1" for the default value, which is currently 30000 ms.maxBatchSize- The maximum batch size of triggers, when acquiring thembatchTimeWindow- The time window for which it is allowed to "pre-acquire" triggers to firemakeSchedThreadDaemon- Make the SchedulerThread a daemon thread.- Throws:
SchedulerException- if initialization failed
-
getScheduler
public Scheduler getScheduler() throws SchedulerException
Returns a handle to the Scheduler produced by this factory.
you must call createRemoteScheduler or createScheduler methods before calling getScheduler()
- Specified by:
getSchedulerin interfaceSchedulerFactory- Throws:
SchedulerException- if there is a problem with the underlyingScheduler.
-
getScheduler
public Scheduler getScheduler(java.lang.String schedName) throws SchedulerException
Returns a handle to the Scheduler with the given name, if it exists.
- Specified by:
getSchedulerin interfaceSchedulerFactory- Throws:
SchedulerException
-
getAllSchedulers
public java.util.Collection<Scheduler> getAllSchedulers() throws SchedulerException
Returns a handle to all known Schedulers (made by any StdSchedulerFactory instance.).
- Specified by:
getAllSchedulersin interfaceSchedulerFactory- Throws:
SchedulerException
-
-