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 Summary
Fields Modifier and Type Field Description static String
EVENT_PRODUCER_KEY
protected static String
JOB_DETAIL_JOB_KEY
static String
JOB_REPOSITORY_KEY
static String
JOB_SERVICE_KEY
protected static String
TYPE_FACTORY
-
Constructor Summary
Constructors Constructor Description 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)
Initializes the scheduler service with anStdScheduler
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)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.quartz.JobDetail
createJobDetail(ScheduledJob job)
protected Optional<org.quartz.Trigger>
createTrigger(ScheduledJob job)
protected void
deleteJobIfExists(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 ClusterProperties
getClusterProperties()
protected Class<? extends org.quartz.Job>
getJobClass()
The POJO that corresponds to the object that should execute when the quartz job is triggered.protected ScheduledJobRepository<com.broadleafcommerce.data.tracking.core.Trackable>
getJobRepository()
protected ScheduledJobService<? extends ScheduledJob>
getJobService()
protected com.broadleafcommerce.common.messaging.notification.NotificationManager
getNotificationManager()
protected org.quartz.Scheduler
getScheduler()
protected com.broadleafcommerce.common.extension.TypeFactory
getTypeFactory()
protected void
initializeAndStartScheduler()
Optional<org.quartz.JobDetail>
processJob(ScheduledJob job)
Review aScheduledJob
and add scheduling and trigger information to the running quartz instance, if it's not already there.void
schedule(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Initiates the quartz scheduler to create, update, and delete quartz jobs according to theScheduled Jobs
defined in the database.void
unschedule(@NonNull ScheduledJob job, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
protected boolean
updateDetected(ScheduledJob job, org.quartz.JobKey thisJobKey)
-
-
-
Field Detail
-
EVENT_PRODUCER_KEY
public static final String EVENT_PRODUCER_KEY
- See Also:
- Constant Field Values
-
JOB_SERVICE_KEY
public static final String JOB_SERVICE_KEY
- See Also:
- Constant Field Values
-
JOB_REPOSITORY_KEY
public static final String JOB_REPOSITORY_KEY
- See Also:
- Constant Field Values
-
JOB_DETAIL_JOB_KEY
protected static final String JOB_DETAIL_JOB_KEY
- See Also:
- Constant Field Values
-
TYPE_FACTORY
protected static final String TYPE_FACTORY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
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 Detail
-
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 theScheduled Jobs
defined in the database.- Specified by:
schedule
in 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:
unschedule
in 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:SchedulerService
Review aScheduledJob
and add scheduling and trigger information to the running quartz instance, if it's not already there.- Specified by:
processJob
in interfaceSchedulerService
- 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()
-
-