Class DefaultSchedulerService

java.lang.Object
com.broadleafcommerce.scheduledjob.service.DefaultSchedulerService
All Implemented Interfaces:
SchedulerService

public class DefaultSchedulerService extends Object implements SchedulerService
Author:
Chad Harchar (charchar)
  • Field Details

  • Constructor Details

    • DefaultSchedulerService

      public DefaultSchedulerService(ScheduledJobService<? extends ScheduledJob> jobService, ScheduledJobRepository<com.broadleafcommerce.data.tracking.core.Trackable> jobRepository, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager, com.broadleafcommerce.common.extension.TypeFactory typeFactory, ClusterProperties clusterProperties) throws org.quartz.SchedulerException
      Initializes the scheduler service with an StdScheduler
      Throws:
      org.quartz.SchedulerException
    • DefaultSchedulerService

      public DefaultSchedulerService(ScheduledJobService<? extends ScheduledJob> jobService, ScheduledJobRepository<com.broadleafcommerce.data.tracking.core.Trackable> jobRepository, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager, com.broadleafcommerce.common.extension.TypeFactory typeFactory, org.quartz.Scheduler scheduler, ClusterProperties clusterProperties) throws org.quartz.SchedulerException
      Throws:
      org.quartz.SchedulerException
  • Method Details

    • schedule

      public void schedule(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: SchedulerService
      Initiates the quartz scheduler to create, update, and delete quartz jobs according to the Scheduled Jobs defined in the database.
      Specified by:
      schedule in interface SchedulerService
      Parameters:
      contextInfo - context information surrounding multitenant state
    • unschedule

      public void unschedule(@NonNull @NonNull ScheduledJob job, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) throws org.quartz.SchedulerException
      Description copied from interface: SchedulerService
      Delete the ScheduledJob from the Scheduler - and any associated Triggers.
      Specified by:
      unschedule in interface SchedulerService
      Parameters:
      job - The scheduled job entity
      contextInfo - context information surrounding multitenant state
      Throws:
      org.quartz.SchedulerException - Thrown if a problem occurs in Quartz during scheduling
    • processJob

      public Optional<org.quartz.JobDetail> processJob(ScheduledJob job) throws org.quartz.SchedulerException
      Description copied from interface: SchedulerService
      Review a ScheduledJob and add scheduling and trigger information to the running quartz instance, if it's not already there.
      Specified by:
      processJob in interface SchedulerService
      Parameters:
      job - The scheduled job entity
      Returns:
      The JobDetail resulting from Quartz scheduling, if the item was scheduled
      Throws:
      org.quartz.SchedulerException - Thrown if a problem occurs in Quartz during scheduling
    • initializeAndStartScheduler

      protected void initializeAndStartScheduler() throws org.quartz.SchedulerException
      Throws:
      org.quartz.SchedulerException
    • establishTrigger

      protected Optional<org.quartz.JobDetail> establishTrigger(ScheduledJob job, org.quartz.JobKey thisJobKey, boolean isUpdate) throws org.quartz.SchedulerException
      Throws:
      org.quartz.SchedulerException
    • createJobDetail

      protected org.quartz.JobDetail createJobDetail(ScheduledJob job)
    • deleteJobIfExists

      protected void deleteJobIfExists(ScheduledJob job, org.quartz.JobKey thisJobKey, Set<org.quartz.JobKey> jobKeys) throws org.quartz.SchedulerException
      Throws:
      org.quartz.SchedulerException
    • createTrigger

      protected Optional<org.quartz.Trigger> createTrigger(ScheduledJob job)
    • updateDetected

      protected boolean updateDetected(ScheduledJob job, org.quartz.JobKey thisJobKey) throws org.quartz.SchedulerException
      Throws:
      org.quartz.SchedulerException
    • getJobClass

      protected Class<? extends org.quartz.Job> getJobClass()
      The POJO that corresponds to the object that should execute when the quartz job is triggered.
      Returns:
      The POJO that corresponds to the object that should execute when the quartz job is triggered.
    • getJobService

      protected ScheduledJobService<? extends ScheduledJob> getJobService()
    • getJobRepository

      protected ScheduledJobRepository<com.broadleafcommerce.data.tracking.core.Trackable> getJobRepository()
    • getNotificationManager

      protected com.broadleafcommerce.common.messaging.notification.NotificationManager getNotificationManager()
    • getTypeFactory

      protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
    • getClusterProperties

      protected ClusterProperties getClusterProperties()
    • getScheduler

      protected org.quartz.Scheduler getScheduler()