com.netscape.certsrv.jobs
Interface IJobsScheduler

All Superinterfaces:
ISubsystem

public interface IJobsScheduler
extends ISubsystem

An interface that represents the job scheduler component. A JobScheduler is a daemon thread that handles scheduled jobs like cron would do with different jobs. This daemon wakes up at a pre-configured interval to see if there is any job to be done, if so, a thread is created to execute the job(s).

The interval jobsScheduler.interval in the configuration is specified as number of minutes. If not set, the default is 1 minute. Note that the cron specification for each job CAN NOT be finer than the granularity of the Scheduler daemon interval. For example, if the daemon interval is set to 5 minute, a job cron for every minute at 7am on each Tuesday (e.g. * 7 * * 2) will result in the execution of the job thread only once every 5 minutes during that hour. The inteval value is recommended at 1 minute, setting it otherwise has the potential of forever missing the beat. Use with caution.

Version:
$Revision: 1211 $, $Date: 2010-08-18 10:15:37 -0700 (Wed, 18 Aug 2010) $

Field Summary
static java.lang.String ID
          The ID of this component
static java.lang.String PROP_CLASS
          constant that represents the configuration parameter "class" for this component in CMS.cfg.
static java.lang.String PROP_ENABLED
          constant that represents the configuration parameter "enabled" for this component in CMS.cfg.
static java.lang.String PROP_IMPL
          constant that represents the configuration parameter "impl" for this component in CMS.cfg.
static java.lang.String PROP_INTERVAL
          constant that represents the configuration parameter "interval" for this component in CMS.cfg.
static java.lang.String PROP_JOB
          constant that represents the configuration parameter "job" for this component in CMS.cfg.
static java.lang.String PROP_PLUGIN
          constant that represents the configuration parameter "pluginName" for this component in CMS.cfg.
 
Method Summary
 IJobCron createJobCron(java.lang.String cs)
          Creates a job cron.
 java.lang.String[] getConfigParams(java.lang.String implName)
          Retrieves the configuration parameters of the given implementation.
 java.util.Hashtable getInstances()
          Retrieves all the job instances.
 java.util.Hashtable getPlugins()
          Retrieves all the job implementations.
 void log(int level, java.lang.String msg)
          Writes a message to the system log.
 void setInterval(int minutes)
          Sets daemon's wakeup interval.
 void startDaemon()
          Starts up the JobsScheduler daemon.
 
Methods inherited from interface com.netscape.certsrv.base.ISubsystem
getConfigStore, getId, init, setId, shutdown, startup
 

Field Detail

ID

static final java.lang.String ID
The ID of this component

See Also:
Constant Field Values

PROP_ENABLED

static final java.lang.String PROP_ENABLED
constant that represents the configuration parameter "enabled" for this component in CMS.cfg. The value of which tells CMS whether the JobsScheduler is enabled or not

See Also:
Constant Field Values

PROP_INTERVAL

static final java.lang.String PROP_INTERVAL
constant that represents the configuration parameter "interval" for this component in CMS.cfg. The value of which tells CMS the interval that the JobsScheduler thread should wake up and look for jobs to execute

See Also:
Constant Field Values

PROP_CLASS

static final java.lang.String PROP_CLASS
constant that represents the configuration parameter "class" for this component in CMS.cfg. The values of which are the actual implementation classes

See Also:
Constant Field Values

PROP_JOB

static final java.lang.String PROP_JOB
constant that represents the configuration parameter "job" for this component in CMS.cfg. The values of which gives configuration information specific to one single job instance. There may be multiple jobs served by the jobsScheduler

See Also:
Constant Field Values

PROP_IMPL

static final java.lang.String PROP_IMPL
constant that represents the configuration parameter "impl" for this component in CMS.cfg. The values of which are actual plugin implementation(s)

See Also:
Constant Field Values

PROP_PLUGIN

static final java.lang.String PROP_PLUGIN
constant that represents the configuration parameter "pluginName" for this component in CMS.cfg. The value of which gives the pluginName for the job it associates with

See Also:
Constant Field Values
Method Detail

getPlugins

java.util.Hashtable getPlugins()
Retrieves all the job implementations.

Returns:
a Hashtable of available job plugin implementations

getInstances

java.util.Hashtable getInstances()
Retrieves all the job instances.

Returns:
a Hashtable of job instances

getConfigParams

java.lang.String[] getConfigParams(java.lang.String implName)
                                   throws EJobsException
Retrieves the configuration parameters of the given implementation. It is used to return to the Console for configuration

Parameters:
implName - the pulubin implementation name
Returns:
a String array of required configuration parameters of the given implementation.
Throws:
EJobsException - when job plugin implementation can not be found, instantiation is impossible, permission problem with the class.

log

void log(int level,
         java.lang.String msg)
Writes a message to the system log.

Parameters:
level - an integer representing the log message level. Depending on the configuration set by the administrator, this value is a determining factor for whether this message will be actually logged or not. The lower the level, the higher the priority, and the higher chance it will be logged.
msg - the message to be written. Ideally should call CMS.getLogMessage() to get the localizable message from the log properties file.

setInterval

void setInterval(int minutes)
Sets daemon's wakeup interval.

Parameters:
minutes - time in minutes that is to be the frequency of JobsScheduler wakeup call.

startDaemon

void startDaemon()
Starts up the JobsScheduler daemon. Usually called from the initialization method when it's successfully initialized.


createJobCron

IJobCron createJobCron(java.lang.String cs)
                       throws EBaseException
Creates a job cron. Each job is associated with a "cron" which specifies the rule of frequency that this job should be executed (e.g. every Sunday at midnight). This method is called by each job at initialization time.

Parameters:
cs - the string that represents the cron. See IJobCron for detail of the format.
Returns:
IJobCron an IJobCron
Throws:
EBaseException - when the cron string, cs, can not be parsed correctly