public class DirectSchedulerFactory extends Object implements SchedulerFactory
A singleton implementation of
.
SchedulerFactory
Here 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");
JobStore
,
ThreadPool
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_INSTANCE_ID |
static String |
DEFAULT_SCHEDULER_NAME |
Modifier | Constructor and Description |
---|---|
protected |
DirectSchedulerFactory()
Constructor
|
Modifier and Type | Method and Description |
---|---|
void |
createRemoteScheduler(String rmiHost,
int rmiPort)
Creates a proxy to a remote scheduler.
|
void |
createRemoteScheduler(String schedulerName,
String schedulerInstanceId,
String rmiHost,
int rmiPort)
Same as
createRemoteScheduler(String rmiHost, int rmiPort) ,
with the addition of specifying the scheduler name and instance ID. |
void |
createRemoteScheduler(String schedulerName,
String schedulerInstanceId,
String rmiBindName,
String rmiHost,
int rmiPort)
Same as
createRemoteScheduler(String rmiHost, int rmiPort) ,
with the addition of specifying the scheduler name, instance ID, and rmi
bind name. |
void |
createScheduler(String schedulerName,
String schedulerInstanceId,
ThreadPool threadPool,
JobStore jobStore)
Same as
createScheduler(ThreadPool threadPool, JobStore jobStore) ,
with the addition of specifying the scheduler name and instance ID. |
void |
createScheduler(String schedulerName,
String schedulerInstanceId,
ThreadPool threadPool,
JobStore jobStore,
Map<String,SchedulerPlugin> schedulerPluginMap,
String rmiRegistryHost,
int rmiRegistryPort,
long idleWaitTime,
long dbFailureRetryInterval,
boolean jmxExport,
String jmxObjectName)
Creates a scheduler using the specified thread pool, job store, and
plugins, and binds it to RMI.
|
void |
createScheduler(String schedulerName,
String schedulerInstanceId,
ThreadPool threadPool,
JobStore jobStore,
String rmiRegistryHost,
int rmiRegistryPort,
long idleWaitTime,
long dbFailureRetryInterval)
Creates a scheduler using the specified thread pool and job store and
binds it to RMI.
|
void |
createScheduler(String schedulerName,
String schedulerInstanceId,
ThreadPool threadPool,
ThreadExecutor threadExecutor,
JobStore jobStore,
Map<String,SchedulerPlugin> schedulerPluginMap,
String rmiRegistryHost,
int rmiRegistryPort,
long idleWaitTime,
long dbFailureRetryInterval,
boolean jmxExport,
String jmxObjectName)
Creates a scheduler using the specified thread pool, job store, and
plugins, and binds it to RMI.
|
void |
createScheduler(String schedulerName,
String schedulerInstanceId,
ThreadPool threadPool,
ThreadExecutor threadExecutor,
JobStore jobStore,
Map<String,SchedulerPlugin> schedulerPluginMap,
String rmiRegistryHost,
int rmiRegistryPort,
long idleWaitTime,
long dbFailureRetryInterval,
boolean jmxExport,
String jmxObjectName,
int maxBatchSize,
long batchTimeWindow)
Creates a scheduler using the specified thread pool, job store, and
plugins, and binds it to RMI.
|
void |
createScheduler(ThreadPool threadPool,
JobStore jobStore)
Creates a scheduler using the specified thread pool and job store.
|
void |
createVolatileScheduler(int maxThreads)
Creates an in memory job store (
)
The thread priority is set to Thread.NORM_PRIORITY |
Collection<Scheduler> |
getAllSchedulers()
Returns a handle to all known Schedulers (made by any
StdSchedulerFactory instance.).
|
static DirectSchedulerFactory |
getInstance() |
protected org.slf4j.Logger |
getLog() |
Scheduler |
getScheduler()
Returns a handle to the Scheduler produced by this factory.
|
Scheduler |
getScheduler(String schedName)
Returns a handle to the Scheduler with the given name, if it exists.
|
public static final String DEFAULT_INSTANCE_ID
public static final String DEFAULT_SCHEDULER_NAME
protected org.slf4j.Logger getLog()
public static DirectSchedulerFactory getInstance()
public void createVolatileScheduler(int maxThreads) throws SchedulerException
RAMJobStore
)
The thread priority is set to Thread.NORM_PRIORITYmaxThreads
- The number of threads in the thread poolSchedulerException
- if initialization failed.public void createRemoteScheduler(String rmiHost, int rmiPort) throws SchedulerException
getScheduler()
rmiHost
- The hostname for remote schedulerrmiPort
- Port for the remote scheduler. The default RMI port is 1099.SchedulerException
- if the remote scheduler could not be reached.public void createRemoteScheduler(String schedulerName, String schedulerInstanceId, String rmiHost, int rmiPort) throws SchedulerException
createRemoteScheduler(String rmiHost, int rmiPort)
,
with the addition of specifying the scheduler name and instance ID. This
scheduler can only be retrieved via
getScheduler(String)
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.SchedulerException
- if the remote scheduler could not be reached.public void createRemoteScheduler(String schedulerName, String schedulerInstanceId, String rmiBindName, String rmiHost, int rmiPort) throws SchedulerException
createRemoteScheduler(String rmiHost, int rmiPort)
,
with the addition of specifying the scheduler name, instance ID, and rmi
bind name. This scheduler can only be retrieved via
getScheduler(String)
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.SchedulerException
- if the remote scheduler could not be reached.public void createScheduler(ThreadPool threadPool, JobStore jobStore) throws SchedulerException
getScheduler()
threadPool
- The thread pool for executing jobsjobStore
- The type of job storeSchedulerException
- if initialization failedpublic void createScheduler(String schedulerName, String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore) throws SchedulerException
createScheduler(ThreadPool threadPool, JobStore jobStore)
,
with the addition of specifying the scheduler name and instance ID. This
scheduler can only be retrieved via
getScheduler(String)
schedulerName
- The name for the scheduler.schedulerInstanceId
- The instance ID for the scheduler.threadPool
- The thread pool for executing jobsjobStore
- The type of job storeSchedulerException
- if initialization failedpublic void createScheduler(String schedulerName, String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval) throws SchedulerException
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.SchedulerException
- if initialization failedpublic void createScheduler(String schedulerName, String schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, Map<String,SchedulerPlugin> schedulerPluginMap, String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, String jmxObjectName) throws SchedulerException
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 a String
plugin names to
SchedulerPlugin
s. Can use
"null" if no plugins are required.rmiRegistryHost
- 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.SchedulerException
- if initialization failedpublic void createScheduler(String schedulerName, String schedulerInstanceId, ThreadPool threadPool, ThreadExecutor threadExecutor, JobStore jobStore, Map<String,SchedulerPlugin> schedulerPluginMap, String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, String jmxObjectName) throws SchedulerException
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 a String
plugin names to
SchedulerPlugin
s. Can use
"null" if no plugins are required.rmiRegistryHost
- 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.SchedulerException
- if initialization failedpublic void createScheduler(String schedulerName, String schedulerInstanceId, ThreadPool threadPool, ThreadExecutor threadExecutor, JobStore jobStore, Map<String,SchedulerPlugin> schedulerPluginMap, String rmiRegistryHost, int rmiRegistryPort, long idleWaitTime, long dbFailureRetryInterval, boolean jmxExport, String jmxObjectName, int maxBatchSize, long batchTimeWindow) throws SchedulerException
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 a String
plugin names to
SchedulerPlugin
s. Can use
"null" if no plugins are required.rmiRegistryHost
- 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 fireSchedulerException
- if initialization failedpublic Scheduler getScheduler() throws SchedulerException
Returns a handle to the Scheduler produced by this factory.
you must call createRemoteScheduler or createScheduler methods before calling getScheduler()
getScheduler
in interface SchedulerFactory
SchedulerException
- if there is a problem with the underlying Scheduler
.public Scheduler getScheduler(String schedName) throws SchedulerException
Returns a handle to the Scheduler with the given name, if it exists.
getScheduler
in interface SchedulerFactory
SchedulerException
public Collection<Scheduler> getAllSchedulers() throws SchedulerException
Returns a handle to all known Schedulers (made by any StdSchedulerFactory instance.).
getAllSchedulers
in interface SchedulerFactory
SchedulerException
Copyright 2001-2019, Terracotta, Inc.