org.apache.sling.commons.scheduler
Interface Scheduler


public interface Scheduler

A scheduler to schedule time/cron based jobs. A job is an object which is executed/fired by the scheduler. The object should either implement the Job interface or the Runnable interface.


Field Summary
static java.lang.String PROPERTY_SCHEDULER_CONCURRENT
          Name of the configuration property to define if the job can be run concurrently.
static java.lang.String PROPERTY_SCHEDULER_EXPRESSION
          Name of the configuration property to define the cron expression for a job.
static java.lang.String PROPERTY_SCHEDULER_NAME
          Name of the configuration property to define the job name.
static java.lang.String PROPERTY_SCHEDULER_PERIOD
          Name of the configuration property to define the period for a job.
 
Method Summary
 void addJob(java.lang.String name, java.lang.Object job, java.util.Map<java.lang.String,java.io.Serializable> config, java.lang.String schedulingExpression, boolean canRunConcurrently)
          Schedule a time based job.
 void addPeriodicJob(java.lang.String name, java.lang.Object job, java.util.Map<java.lang.String,java.io.Serializable> config, long period, boolean canRunConcurrently)
          Schedule a periodic job.
 void fireJob(java.lang.Object job, java.util.Map<java.lang.String,java.io.Serializable> config)
          Fire a job immediately and only once.
 void fireJobAt(java.lang.String name, java.lang.Object job, java.util.Map<java.lang.String,java.io.Serializable> config, java.util.Date date)
          Fire a job once at a specific date Note that if a job with the same name has already beed added, the old job is cancelled and this new job replaces the old job.
 void removeJob(java.lang.String name)
          Remove a scheduled job by name.
 

Field Detail

PROPERTY_SCHEDULER_PERIOD

static final java.lang.String PROPERTY_SCHEDULER_PERIOD
Name of the configuration property to define the period for a job.

See Also:
Constant Field Values

PROPERTY_SCHEDULER_EXPRESSION

static final java.lang.String PROPERTY_SCHEDULER_EXPRESSION
Name of the configuration property to define the cron expression for a job.

See Also:
Constant Field Values

PROPERTY_SCHEDULER_CONCURRENT

static final java.lang.String PROPERTY_SCHEDULER_CONCURRENT
Name of the configuration property to define if the job can be run concurrently.

See Also:
Constant Field Values

PROPERTY_SCHEDULER_NAME

static final java.lang.String PROPERTY_SCHEDULER_NAME
Name of the configuration property to define the job name.

See Also:
Constant Field Values
Method Detail

addJob

void addJob(java.lang.String name,
            java.lang.Object job,
            java.util.Map<java.lang.String,java.io.Serializable> config,
            java.lang.String schedulingExpression,
            boolean canRunConcurrently)
            throws java.lang.Exception
Schedule a time based job. Note that if a job with the same name has already beed added, the old job is cancelled and this new job replaces the old job.

Parameters:
name - The name of the job - or null. If no name is specified it can't be cancelled.
job - The job to execute (either Job or Runnable).
config - An optional configuration object - this configuration is only passed to the job the job implements Job.
schedulingExpression - The time specification using a scheduling expression.
canRunConcurrently - Whether this job can run even if previous scheduled runs are still running.
Throws:
java.lang.Exception

addPeriodicJob

void addPeriodicJob(java.lang.String name,
                    java.lang.Object job,
                    java.util.Map<java.lang.String,java.io.Serializable> config,
                    long period,
                    boolean canRunConcurrently)
                    throws java.lang.Exception
Schedule a periodic job. The job is started the first time when the period has passed. Note that if a job with the same name has already beed added, the old job is cancelled and this new job replaces the old job.

Parameters:
name - The name of the job - or null. If no name is specified it can't be cancelled.
job - The job to execute (either Job or Runnable).
config - An optional configuration object - this configuration is only passed to the job the job implements Job.
period - Every period seconds this job is started.
canRunConcurrently - Whether this job can run even if previous scheduled runs are still running.
Throws:
java.lang.Exception

fireJob

void fireJob(java.lang.Object job,
             java.util.Map<java.lang.String,java.io.Serializable> config)
             throws java.lang.Exception
Fire a job immediately and only once.

Parameters:
job - The job to execute (either Job or Runnable).
config - An optional configuration object - this configuration is only passed to the job the job implements Job.
Throws:
java.lang.Exception

fireJobAt

void fireJobAt(java.lang.String name,
               java.lang.Object job,
               java.util.Map<java.lang.String,java.io.Serializable> config,
               java.util.Date date)
               throws java.lang.Exception
Fire a job once at a specific date Note that if a job with the same name has already beed added, the old job is cancelled and this new job replaces the old job.

Parameters:
name - The name of the job - or null. If no name is specified it can't be cancelled.
job - The job to execute (either Job or Runnable).
config - An optional configuration object - this configuration is only passed to the job the job implements Job.
date - The date this job should be run.
Throws:
java.lang.Exception

removeJob

void removeJob(java.lang.String name)
               throws java.util.NoSuchElementException
Remove a scheduled job by name.

Parameters:
name - The name of the job.
Throws:
java.util.NoSuchElementException


Copyright © 2007-2009. All Rights Reserved.