Interface IScheduler

  • All Known Implementing Classes:
    QuartzScheduler

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

      • createJob

        Job createJob​(String jobName,
                      Class<? extends org.pentaho.platform.api.action.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

        Job 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

        Job createJob​(String jobName,
                      Class<? extends org.pentaho.platform.api.action.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

        Job 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
      • 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
      • setSubjectAvailabilityWindow

        void setSubjectAvailabilityWindow​(IScheduleSubject subject,
                                          ComplexJobTrigger 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,​ComplexJobTrigger> windows)
        Replaces the scheduler availability map with the provided availability map.
        Parameters:
        windows - the new scheduler availability map
      • getSubjectAvailabilityWindow

        ComplexJobTrigger 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,​ComplexJobTrigger> 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<Job> 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
      • 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