Interface IScheduler


public interface IScheduler
An object that allows for the scheduling of IActions on the Pentaho platform
Author:
arodriguez
  • Field Details

  • Method Details

    • createJob

      IJob createJob(String jobName, Class<? extends IAction> action, Map<String,Serializable> jobParams, IJobTrigger trigger) throws SchedulerException
      Schedules a job to be run at one or more times in the future.
      Parameters:
      jobName - the user defined name for the job
      action - the action to be run at the scheduled time(s)
      jobParams - the parameters to be passed to the action when it runs
      trigger - the time(s) at which to run the action
      Returns:
      the scheduled job
      Throws:
      SchedulerException - If the job could not be scheduled
    • createJob

      IJob createJob(String jobName, String actionId, Map<String,Serializable> jobParams, IJobTrigger trigger) throws SchedulerException
      Schedules a job to be run at one or more times in the future.
      Parameters:
      jobName - the user defined name for the job
      actionId - the bean Id of the action to be run as defined an a plugin's plugin.xml
      jobParams - the parameters to be passed to the action when it runs
      trigger - the time(s) at which to run the action
      Returns:
      the scheduled job
      Throws:
      SchedulerException - If the job could not be scheduled
    • createJob

      IJob createJob(String jobName, Class<? extends IAction> action, Map<String,Serializable> jobParams, IJobTrigger trigger, IBackgroundExecutionStreamProvider outputStreamProvider) throws SchedulerException
      Schedules a job to be run at one or more times in the future.
      Parameters:
      jobName - the user defined name for the job
      action - the action to be run at the scheduled time(s)
      jobParams - the parameters to be passed to the action when it runs
      trigger - the time(s) at which to run the action
      outputStreamProvider - if the action being scheduled expects to write to an output stream, at the time of action execution the this provider will be used to create the stream that passed to the action.
      Returns:
      the scheduled job
      Throws:
      SchedulerException - If the job could not be scheduled
    • createJob

      IJob createJob(String jobName, String actionId, Map<String,Serializable> jobParams, IJobTrigger trigger, IBackgroundExecutionStreamProvider outputStreamProvider) throws SchedulerException
      Schedules a job to be run at one or more times in the future.
      Parameters:
      jobName - the user defined name for the job
      actionId - the bean Id of the action to be run as defined an a plugin's plugin.xml
      jobParams - the parameters to be passed to the action when it runs
      trigger - the time(s) at which to run the action
      outputStreamProvider - if the action being scheduled expects to write to an output stream, at the time of action execution the this provider will be used to create the stream that passed to the action.
      Returns:
      the scheduled job
      Throws:
      SchedulerException - If the job could not be scheduled
    • updateJob

      void updateJob(String jobId, Map<String,Serializable> jobParams, IJobTrigger trigger) throws SchedulerException
      Updates both the parameters and trigger to be used to execute an existing scheduled action.
      Parameters:
      jobId - the ID of an existing scheduled job
      jobParams - the parameters to be passed to the action when it runs
      trigger - the time(s) at which to run the action
      Throws:
      SchedulerException - If the job could not be updated
    • removeJob

      void removeJob(String jobId) throws SchedulerException
      Removes the specified job from the list of scheduled jobs
      Parameters:
      jobId - the job to be removed
      Throws:
      SchedulerException
    • pauseJob

      void pauseJob(String jobId) throws SchedulerException
      Prevents the specified job from running in the future. The job remains in the list of scheduled jobs in a "paused" state. If the job is currently running, the currently running job is allowed to complete.
      Parameters:
      jobId - the job to be paused
      Throws:
      SchedulerException
    • resumeJob

      void resumeJob(String jobId) throws SchedulerException
      Allows previously paused jobs to resume running in the future.
      Parameters:
      jobId - the job to be resumed
      Throws:
      SchedulerException
    • getJob

      IJob getJob(String jobId) throws SchedulerException
      Fetches a Job by jobId
      Parameters:
      jobId - the job to be returned
      Throws:
      SchedulerException
    • triggerNow

      void triggerNow(String jobId) throws SchedulerException
      Triggers the given quartz job by jobId to be executed immediately
      Parameters:
      jobId - the job to be executed
      Throws:
      SchedulerException
    • setSubjectAvailabilityWindow

      void setSubjectAvailabilityWindow(IScheduleSubject subject, IComplexJobTrigger window)
      Sets when a particular subject is allowed to schedule jobs.
      Parameters:
      subject - the subject to which the subject applies
      window - the window of time at which the scheduler is available
    • setAvailabilityWindows

      void setAvailabilityWindows(Map<IScheduleSubject,IComplexJobTrigger> windows)
      Replaces the scheduler availability map with the provided availability map.
      Parameters:
      windows - the new scheduler availability map
    • getSubjectAvailabilityWindow

      IComplexJobTrigger getSubjectAvailabilityWindow(IScheduleSubject subject)
      Gets the scheduler availability window to the specified subject
      Parameters:
      subject - the subject whose window is being requested
      Returns:
      the subject's availability window
    • getAvailabilityWindows

      Map<IScheduleSubject,IComplexJobTrigger> getAvailabilityWindows()
      Gets the scheduler availability window for all subjects for whom a window has been set
      Returns:
      the scheduler availability map
    • pause

      void pause() throws SchedulerException
      Pauses the entire scheduler, which prevents all scheduled jobs from running. Any currently running jobs are allowed to complete. Note that the "paused" state of individual jobs is not changed by this call.
      Throws:
      SchedulerException
    • start

      void start() throws SchedulerException
      Allows the scheduler to process scheduled jobs. Note that the "paused" state of individual jobs is not changed by this call.
      Throws:
      SchedulerException
    • shutdown

      void shutdown() throws SchedulerException
      Shuts the scheduler down so it will process no more jobs. The implementation will decide if this means kill jobs in progress or let them finish.
      Throws:
      SchedulerException
    • setMinScheduleInterval

      void setMinScheduleInterval(IScheduleSubject subject, int intervalInSeconds)
      Sets the minimum time that must elapse between runs of any jobs. For example if set to "5" then a job may not be scheduled to run less than 5 seconds apart.
      Parameters:
      subject - the subject to which the interval applies
      intervalInSeconds - the interval in seconds
    • getMinScheduleInterval

      Integer getMinScheduleInterval(IScheduleSubject subject)
      Get the minimum time that must elapse between job runs.
      Parameters:
      subject - the subject whose min interval is being requested return the minimum interval or null if no interval has been set
    • getJobs

      List<IJob> getJobs(IJobFilter filter) throws SchedulerException
      Lists currently scheduled jobs.
      Parameters:
      filter - the filter to use to determine which jobs to return. If null all scheduled jobs are return.
      Returns:
      the scheduled jobs
      Throws:
      SchedulerException
    • getJobHistory

      List<IJobResult> getJobHistory(String jobId)
      Returns a history of the runs for a particular job.
      Parameters:
      jobId - the job for which to query it's execution history
      Returns:
      the execution history for the given job
    • getStatus

      Returns the current scheduler status.
      Returns:
      the scheduler status
      Throws:
      SchedulerException
    • addListener

      void addListener(ISchedulerListener listener)
    • fireJobCompleted

      void fireJobCompleted(IAction actionBean, String actionUser, Map<String,Serializable> params, IBackgroundExecutionStreamProvider streamProvider)
      Not intended for public use.
      Parameters:
      actionBean -
      actionUser -
      params -
      streamProvider -
    • createJobScheduleRequest

      IJobScheduleRequest createJobScheduleRequest()
    • createJobScheduleParam

      IJobScheduleParam createJobScheduleParam()
    • createSimpleJobTrigger

      ISimpleJobTrigger createSimpleJobTrigger(Date startTime, Date endTime, int repeatCount, long repeatIntervalSeconds)
    • createCronJobTrigger

      ICronJobTrigger createCronJobTrigger()
    • createComplexTrigger

      IComplexJobTrigger createComplexTrigger(String cronString)
    • createComplexJobTrigger

      IComplexJobTrigger createComplexJobTrigger()
    • createComplexTrigger

      IComplexJobTrigger createComplexTrigger(Integer year, Integer month, Integer dayOfMonth, Integer dayOfWeek, Integer hourOfDay)
    • getJobParameters

      ArrayList<IJobScheduleParam> getJobParameters()
    • createSchedulerResource

      ISchedulerResource createSchedulerResource()
    • createJobRequest

      IJobRequest createJobRequest()
    • validateJobParams

      default void validateJobParams(Map<String,Serializable> jobParams) throws SchedulerException
      A default implementation which doesn't do anything and exists for the backward compatibility sake.
      Parameters:
      jobParams - scheduling job parameters
      Throws:
      SchedulerException