org.red5.server.scheduling
Class QuartzSchedulingService

java.lang.Object
  extended by org.red5.server.scheduling.QuartzSchedulingService
All Implemented Interfaces:
IScopeService, ISchedulingService, QuartzSchedulingServiceMBean, DisposableBean, InitializingBean
Direct Known Subclasses:
ApplicationSchedulingService

public class QuartzSchedulingService
extends Object
implements ISchedulingService, QuartzSchedulingServiceMBean, InitializingBean, DisposableBean

Scheduling service that uses Quartz as backend.

Author:
The Red5 Project (red5@osflash.org), Joachim Bauch (jojo@struktur.de), Paul Gregoire (mondain@gmail.com)

Field Summary
protected  SchedulerFactory factory
          Creates schedulers.
protected  String instanceId
          Instance id
protected  AtomicLong jobDetailCounter
          Number of job details
protected  Scheduler scheduler
          Service scheduler
 
Fields inherited from interface org.red5.server.api.scheduling.ISchedulingService
BEAN_NAME
 
Constructor Summary
QuartzSchedulingService()
           
 
Method Summary
 String addScheduledJob(int interval, IScheduledJob job)
          Schedule a job for periodic execution.
 String addScheduledJobAfterDelay(int interval, IScheduledJob job, int delay)
          Schedule a job for periodic execution which will start after the specifed delay.
 String addScheduledOnceJob(Date date, IScheduledJob job)
          Schedule a job for single execution at a given date.
 String addScheduledOnceJob(long timeDelta, IScheduledJob job)
          Schedule a job for single execution in the future.
 void afterPropertiesSet()
          Constructs a new QuartzSchedulingService.
 void destroy()
           
 String getJobName()
          Getter for job name.
 List<String> getScheduledJobNames()
          Return names of scheduled jobs.
 void pauseScheduledJob(String name)
          Pauses the trigger which initiates job execution.
 void pauseScheduledTrigger(String name)
           
 void registerJMX()
           
 void removeScheduledJob(String name)
          Stop executing a previously scheduled job.
 void resumeScheduledJob(String name)
          Resumes the trigger which initiates job execution.
 void resumeScheduledTrigger(String name)
           
 void setFactory(SchedulerFactory factory)
           
 void setInstanceId(String instanceId)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

jobDetailCounter

protected AtomicLong jobDetailCounter
Number of job details


factory

protected SchedulerFactory factory
Creates schedulers.


scheduler

protected Scheduler scheduler
Service scheduler


instanceId

protected String instanceId
Instance id

Constructor Detail

QuartzSchedulingService

public QuartzSchedulingService()
Method Detail

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Constructs a new QuartzSchedulingService.

Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception

setFactory

public void setFactory(SchedulerFactory factory)

setInstanceId

public void setInstanceId(String instanceId)

registerJMX

public void registerJMX()

addScheduledJob

public String addScheduledJob(int interval,
                              IScheduledJob job)
Schedule a job for periodic execution.

Specified by:
addScheduledJob in interface ISchedulingService
Parameters:
interval - time in milliseconds between two notifications of the job
job - the job to trigger periodically
Returns:
the name of the scheduled job

addScheduledOnceJob

public String addScheduledOnceJob(Date date,
                                  IScheduledJob job)
Schedule a job for single execution at a given date. Please note that the jobs are not saved if Red5 is restarted in the meantime.

Specified by:
addScheduledOnceJob in interface ISchedulingService
Parameters:
date - date when the job should be executed
job - the job to trigger
Returns:
the name of the scheduled job

addScheduledOnceJob

public String addScheduledOnceJob(long timeDelta,
                                  IScheduledJob job)
Schedule a job for single execution in the future. Please note that the jobs are not saved if Red5 is restarted in the meantime.

Specified by:
addScheduledOnceJob in interface ISchedulingService
Parameters:
timeDelta - time delta in milliseconds from the current date
job - the job to trigger
Returns:
the name of the scheduled job

addScheduledJobAfterDelay

public String addScheduledJobAfterDelay(int interval,
                                        IScheduledJob job,
                                        int delay)
Schedule a job for periodic execution which will start after the specifed delay.

Specified by:
addScheduledJobAfterDelay in interface ISchedulingService
Parameters:
interval - time in milliseconds between two notifications of the job
job - the job to trigger periodically
delay - time in milliseconds to pass before first execution.
Returns:
the name of the scheduled job

getJobName

public String getJobName()
Getter for job name.

Specified by:
getJobName in interface QuartzSchedulingServiceMBean
Returns:
Job name

getScheduledJobNames

public List<String> getScheduledJobNames()
Return names of scheduled jobs.

Specified by:
getScheduledJobNames in interface ISchedulingService
Specified by:
getScheduledJobNames in interface QuartzSchedulingServiceMBean
Returns:
list of job names

pauseScheduledJob

public void pauseScheduledJob(String name)
Pauses the trigger which initiates job execution.

Specified by:
pauseScheduledJob in interface ISchedulingService
Parameters:
name - name of the job to stop

resumeScheduledJob

public void resumeScheduledJob(String name)
Resumes the trigger which initiates job execution.

Specified by:
resumeScheduledJob in interface ISchedulingService
Parameters:
name - name of the job to stop

pauseScheduledTrigger

public void pauseScheduledTrigger(String name)

resumeScheduledTrigger

public void resumeScheduledTrigger(String name)

removeScheduledJob

public void removeScheduledJob(String name)
Stop executing a previously scheduled job.

Specified by:
removeScheduledJob in interface ISchedulingService
Specified by:
removeScheduledJob in interface QuartzSchedulingServiceMBean
Parameters:
name - name of the job to stop

destroy

public void destroy()
             throws Exception
Specified by:
destroy in interface DisposableBean
Throws:
Exception


Copyright © 2006-2010 The Red5 Project