org.apache.turbine.services.schedule

## Class QuartzSchedulerService

- java.lang.Object
- - org.apache.turbine.services.BaseInitable
  - - org.apache.turbine.services.BaseService
    - - org.apache.turbine.services.TurbineBaseService
      - - org.apache.turbine.services.schedule.QuartzSchedulerService

- All Implemented Interfaces:
    Initable, ScheduleService, Service

      public class QuartzSchedulerService
      extends TurbineBaseService
      implements ScheduleService

  Service for a quartz scheduler.
  Author:
    Thomas Vandahl

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `enabled` Current status of the scheduler
    `protected static org.apache.commons.logging.Log` | `log` Logging

    - ### Fields inherited from class org.apache.turbine.services.BaseService

      `configuration, name, serviceBroker`

    - ### Fields inherited from class org.apache.turbine.services.BaseInitable

      `initableBroker, isInitialized`

    - ### Fields inherited from interface org.apache.turbine.services.schedule.ScheduleService

      `INTIALLY_ACTIVE, LOGGER_NAME, SERVICE_NAME`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `QuartzSchedulerService()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addJob(JobEntry je)` Add a new job to the queue.
    `JobEntryQuartz` | `buildJobEntry(org.quartz.Trigger trigger, org.quartz.JobDetail jd)` Builds a `JobEntryQuartz` from Quartz trigger/job.
    `JobEntry` | `getJob(int oid)` Get a specific Job from Storage.
    `org.quartz.Scheduler` | `getScheduler()` Exposing the Quartz scheduler to handle jobs/triggers in more detail.
    `void` | `init()` Initializes the SchedulerService.
    `boolean` | `isEnabled()` Determines if the scheduler service is currently enabled.
    `List<? extends JobEntry>` | `listJobs()` List jobs in the queue.
    `JobEntry` | `newJob(int sec, int min, int hour, int wd, int day_mo, String task)` Factory method for a new Job Schedule a job to run on a certain point of time.
    `void` | `removeJob(JobEntry je)` Remove a job from the queue.
    `void` | `restart()` Start (or restart) a thread to process commands, or wake up an existing thread if one is already running.
    `protected void` | `setEnabled(boolean enabled)` Sets the enabled status of the scheduler
    `void` | `shutdown()` Shutdowns the service.
    `void` | `startScheduler()` Starts or restarts the scheduler if not already running.
    `void` | `stopScheduler()` Stops the scheduler if it is currently running.
    `void` | `updateJob(JobEntry je)` Add or update a job.

    - ### Methods inherited from class org.apache.turbine.services.TurbineBaseService

      `init, init`

    - ### Methods inherited from class org.apache.turbine.services.BaseService

      `getConfiguration, getName, getProperties, getServiceBroker, setName, setServiceBroker`

    - ### Methods inherited from class org.apache.turbine.services.BaseInitable

      `getInit, getInitableBroker, setInit, setInitableBroker`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.turbine.services.Service

      `getConfiguration, getName, getProperties, setName, setServiceBroker`

    - ### Methods inherited from interface org.apache.turbine.services.Initable

      `getInit, init, setInitableBroker`

- - ### Field Detail

    - #### log

          protected static org.apache.commons.logging.Log log

      Logging

    - #### enabled

          protected boolean enabled

      Current status of the scheduler

  - ### Constructor Detail

    - #### QuartzSchedulerService

          public QuartzSchedulerService()

  - ### Method Detail

    - #### init

          public void init()
                    throws InitializationException

      Initializes the SchedulerService. Retrieves the Quartz `scheduler` from the Fulcrum `QuartzScheduler` service.
      Specified by:
        `init` in interface `Initable`
      Overrides:
        `init` in class `TurbineBaseService`
      Throws:
        `InitializationException` - Something went wrong in the init stage

    - #### shutdown

          public void shutdown()

      Shutdowns the service. This methods interrupts the housekeeping thread.
      Specified by:
        `shutdown` in interface `Initable`
      Overrides:
        `shutdown` in class `TurbineBaseService`

    - #### newJob

          public JobEntry newJob(int sec,
                        int min,
                        int hour,
                        int wd,
                        int day_mo,
                        String task)
                          throws TurbineException

      Description copied from interface: `ScheduleService`
      Factory method for a new Job Schedule a job to run on a certain point of time.
      Example 1: Run the DefaultScheduledJob at 8:00am every 15th of the month -
      JobEntry je = newJob(0,0,8,-1,15,"DefaultScheduledJob");
      Example 2: Run the DefaultScheduledJob at 8:00am every day -
      JobEntry je = newJob(0,0,8,-1,-1,"DefaultScheduledJob");
      Example 3: Run the DefaultScheduledJob every 2 hours. -
      JobEntry je = newJob(0,120,-1,-1,-1,"DefaultScheduledJob");
      Example 4: Run the DefaultScheduledJob every 30 seconds. -
      JobEntry je = newJob(30,-1,-1,-1,-1,"DefaultScheduledJob");
      Specified by:
        `newJob` in interface `ScheduleService`
      Parameters:
        `sec` - Value for entry "seconds".
        `min` - Value for entry "minutes".
        `hour` - Value for entry "hours".
        `wd` - Value for entry "week days".
        `day_mo` - Value for entry "month days".
        `task` - Task to execute.
      Returns:
        A JobEntry.
      Throws:
        `TurbineException` - could not create job
      See Also:
        `ScheduleService.newJob(int, int, int, int, int, java.lang.String)`

    - #### getJob

          public JobEntry getJob(int oid)
                          throws TurbineException

      Get a specific Job from Storage.
      Specified by:
        `getJob` in interface `ScheduleService`
      Parameters:
        `oid` - The int id for the job.
      Returns:
        A JobEntry.
      Throws:
        `TurbineException` - job could not be retrieved.

    - #### addJob

          public void addJob(JobEntry je)
                      throws TurbineException

      Add a new job to the queue.
      Specified by:
        `addJob` in interface `ScheduleService`
      Parameters:
        `je` - A JobEntry with the job to add.
      Throws:
        `TurbineException` - job could not be added

    - #### removeJob

          public void removeJob(JobEntry je)
                         throws TurbineException

      Remove a job from the queue.
      Specified by:
        `removeJob` in interface `ScheduleService`
      Parameters:
        `je` - A JobEntry with the job to remove.
      Throws:
        `TurbineException` - job could not be removed

    - #### updateJob

          public void updateJob(JobEntry je)
                         throws TurbineException

      Add or update a job.
      Specified by:
        `updateJob` in interface `ScheduleService`
      Parameters:
        `je` - A JobEntry with the job to modify
      Throws:
        `TurbineException` - job could not be updated

    - #### listJobs

          public List<? extends JobEntry> listJobs()

      List jobs in the queue. This is used by the scheduler UI.
      Specified by:
        `listJobs` in interface `ScheduleService`
      Returns:
        A List of jobs.

    - #### setEnabled

          protected void setEnabled(boolean enabled)

      Sets the enabled status of the scheduler
      Parameters:
        `enabled` -

    - #### isEnabled

          public boolean isEnabled()

      Determines if the scheduler service is currently enabled.
      Specified by:
        `isEnabled` in interface `ScheduleService`
      Returns:
        Status of the scheduler service.

    - #### startScheduler

          public void startScheduler()

      Starts or restarts the scheduler if not already running.
      Specified by:
        `startScheduler` in interface `ScheduleService`

    - #### stopScheduler

          public void stopScheduler()

      Stops the scheduler if it is currently running.
      Specified by:
        `stopScheduler` in interface `ScheduleService`

    - #### restart

          public void restart()

      Start (or restart) a thread to process commands, or wake up an existing thread if one is already running. This method can be invoked if the background thread crashed due to an unrecoverable exception in an executed command.

    - #### getScheduler

          public org.quartz.Scheduler getScheduler()

      Exposing the Quartz scheduler to handle jobs/triggers in more detail.
      Returns:
        the `Scheduler` of this service.

    - #### buildJobEntry

          public JobEntryQuartz buildJobEntry(org.quartz.Trigger trigger,
                                     org.quartz.JobDetail jd)

      Builds a `JobEntryQuartz` from Quartz trigger/job. The developer should be aware to set identity/context properly, i.e. to , if adding triggers/jobs.
      Parameters:
        `trigger` - a Quartz `Trigger`.
        `jd` - a Quartz `JobDetail` (built from a `Job` with `JobBuilder`).
      Returns:
        A JobEntryQuartz.

Copyright © 2000–2018 The Apache Software Foundation. All rights reserved.