Interface CustomizedScheduledJobRepository<D>
-
- All Known Subinterfaces:
JpaScheduledJobRepository<D>
,ScheduledJobRepository<D>
- All Known Implementing Classes:
JpaCustomizedScheduledJobRepository
public interface CustomizedScheduledJobRepository<D>
Repository fragment supporting additional persistence functionality related toScheduledJob
- Author:
- Jeff Fischer
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description D
establishTriggerStateIfApplicable(String contextId)
Establish theNotificationStateAware
contract forTriggeredJobEventProducer.TYPE
.Optional<D>
findByContextIdIgnoringNarrowing(String contextId)
Retrieves the job whoseScheduledJob#contextId
matches the one supplied.D
markJobAsExecuted(String contextId, TimingType timingType)
Mark a job as executed viaScheduledJob.isExecuted()
.Optional<D>
resetNotificationStateByNameAndJobDetailsContaining(String notificationStateToReset, String detailName, Object detailValue)
Finds the job whoseScheduledJob.details
contains aScheduledJobDetail
with the givenScheduledJobDetail.name
andScheduledJobDetail#value
, and resets the notification state with the matching name.Stream<D>
streamAll(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Read a stream of all ScheduledJobs in the data store.
-
-
-
Method Detail
-
streamAll
@NonNull @Policy(operationTypes=READ) Stream<D> streamAll(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Read a stream of all ScheduledJobs in the data store.- Parameters:
contextInfo
- context information surrounding multitenant state- Returns:
- a stream of all ScheduledJobs in the data store
-
establishTriggerStateIfApplicable
@NonNull D establishTriggerStateIfApplicable(@NonNull String contextId)
Establish theNotificationStateAware
contract forTriggeredJobEventProducer.TYPE
. This should initialize the basic support for a trigger typeNotificationState
item in theNotificationStateAware.getNotificationStates()
list. This state is generally completed during themarkJobAsExecuted(String, TimingType)
lifecycle.- Parameters:
contextId
- The tracking identifier for the scheduled job- Returns:
- The initialized entity instance
-
markJobAsExecuted
@Nullable D markJobAsExecuted(@NonNull String contextId, @NonNull TimingType timingType)
Mark a job as executed viaScheduledJob.isExecuted()
. As part of an atomic operation, this method should also set theScheduledJob.getLastExecuted()
field and disable the job viaScheduledJob.isEnabled()
if the job is ofTimingType.TARGET_DATE
. Finally, theNotificationState
of typeTriggeredJobEventProducer.TYPE
should be configured to start the resiliency lifecycle. SeeNotificationState
for more information on the fields there related to messaging resiliency.- Parameters:
contextId
- The tracking identifier for the scheduled jobtimingType
- The type of job (e.g. whether it's recurring cron or single use)- Returns:
- the updated job if found and successfully updated, otherwise
null
. For example, if another process had already updated the record as being executed, this update would not succeed.
-
resetNotificationStateByNameAndJobDetailsContaining
@NonNull Optional<D> resetNotificationStateByNameAndJobDetailsContaining(@NonNull String notificationStateToReset, String detailName, Object detailValue)
Finds the job whoseScheduledJob.details
contains aScheduledJobDetail
with the givenScheduledJobDetail.name
andScheduledJobDetail#value
, and resets the notification state with the matching name.- Parameters:
detailName
- theScheduledJobDetail.name
that the detail should havedetailValue
- theScheduledJobDetail#value
that the detail should have- Returns:
- an
Optional
containing the updated job if updated,Optional.empty()
otherwise
-
findByContextIdIgnoringNarrowing
@NonNull Optional<D> findByContextIdIgnoringNarrowing(@NonNull String contextId)
Retrieves the job whoseScheduledJob#contextId
matches the one supplied. UnlikeTrackableRepository.findByContextId(String, ContextInfo)
, the results are not filtered by narrowing and thus even previously "deleted" results can be returned by this method.This functionality is useful for
DeploymentJobUnschedulingRequestListener
, which requires access to the deleted record for proper notification behavior.- Parameters:
contextId
- the context ID of the job to find- Returns:
- an
Optional
containing the job if found,Optional.empty()
otherwise
-
-