Class DefaultSchedulerService
java.lang.Object
com.broadleafcommerce.scheduledjob.service.DefaultSchedulerService
- All Implemented Interfaces:
SchedulerService
- Author:
- Chad Harchar (charchar)
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefaultSchedulerService(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) Initializes the scheduler service with anStdSchedulerDefaultSchedulerService(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) -
Method Summary
Modifier and TypeMethodDescriptionprotected org.quartz.JobDetailprotected Optional<org.quartz.Trigger>protected voiddeleteJobIfExists(ScheduledJob job, org.quartz.JobKey thisJobKey, Set<org.quartz.JobKey> jobKeys) protected Optional<org.quartz.JobDetail>establishTrigger(ScheduledJob job, org.quartz.JobKey thisJobKey, boolean isUpdate) protected ClusterPropertiesprotected Class<? extends org.quartz.Job>The POJO that corresponds to the object that should execute when the quartz job is triggered.protected ScheduledJobRepository<com.broadleafcommerce.data.tracking.core.Trackable>protected ScheduledJobService<? extends ScheduledJob>protected com.broadleafcommerce.common.messaging.notification.NotificationManagerprotected org.quartz.Schedulerprotected com.broadleafcommerce.common.extension.TypeFactoryprotected voidOptional<org.quartz.JobDetail>processJob(ScheduledJob job) Review aScheduledJoband add scheduling and trigger information to the running quartz instance, if it's not already there.voidschedule(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Initiates the quartz scheduler to create, update, and delete quartz jobs according to theScheduled Jobsdefined in the database.voidunschedule(@NonNull ScheduledJob job, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected booleanupdateDetected(ScheduledJob job, org.quartz.JobKey thisJobKey)
-
Field Details
-
EVENT_PRODUCER_KEY
- See Also:
-
JOB_SERVICE_KEY
- See Also:
-
JOB_REPOSITORY_KEY
- See Also:
-
JOB_DETAIL_JOB_KEY
- See Also:
-
TYPE_FACTORY
- See Also:
-
-
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 anStdScheduler- 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:SchedulerServiceInitiates the quartz scheduler to create, update, and delete quartz jobs according to theScheduled Jobsdefined in the database.- Specified by:
schedulein interfaceSchedulerService- 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- Specified by:
unschedulein interfaceSchedulerService- Parameters:
job- The scheduled job entitycontextInfo- 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:SchedulerServiceReview aScheduledJoband add scheduling and trigger information to the running quartz instance, if it's not already there.- Specified by:
processJobin interfaceSchedulerService- Parameters:
job- The scheduled job entity- Returns:
- The
JobDetailresulting 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
-
deleteJobIfExists
protected void deleteJobIfExists(ScheduledJob job, org.quartz.JobKey thisJobKey, Set<org.quartz.JobKey> jobKeys) throws org.quartz.SchedulerException - Throws:
org.quartz.SchedulerException
-
createTrigger
-
updateDetected
protected boolean updateDetected(ScheduledJob job, org.quartz.JobKey thisJobKey) throws org.quartz.SchedulerException - Throws:
org.quartz.SchedulerException
-
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
-
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
-
getScheduler
protected org.quartz.Scheduler getScheduler()
-