Interface CustomizedScheduledJobRepository<D>

    • 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 the NotificationStateAware contract for TriggeredJobEventProducer.TYPE. This should initialize the basic support for a trigger type NotificationState item in the NotificationStateAware.getNotificationStates() list. This state is generally completed during the markJobAsExecuted(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 via ScheduledJob.isExecuted(). As part of an atomic operation, this method should also set the ScheduledJob.getLastExecuted() field and disable the job via ScheduledJob.isEnabled() if the job is of TimingType.TARGET_DATE. Finally, the NotificationState of type TriggeredJobEventProducer.TYPE should be configured to start the resiliency lifecycle. See NotificationState for more information on the fields there related to messaging resiliency.
        Parameters:
        contextId - The tracking identifier for the scheduled job
        timingType - 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.
      • findByContextIdIgnoringNarrowing

        @NonNull
        Optional<D> findByContextIdIgnoringNarrowing​(@NonNull
                                                     String contextId)
        Retrieves the job whose ScheduledJob#contextId matches the one supplied. Unlike TrackableRepository.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