abstract class EnterpriseScheduler extends Scheduler with NamedLogging

Reusable scheduler base class only available in the Enterprise Edition: - Based on a single-threaded scheduled executor. - Also manages schedule persistence reacting to schedule changes.

Encapsulates generic scheduling logic reusable by specific schedulers.

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EnterpriseScheduler
  2. NamedLogging
  3. Scheduler
  4. AutoCloseable
  5. StartStoppable
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new EnterpriseScheduler(name: String, processingTimeouts: ProcessingTimeout, loggerFactory: NamedLoggerFactory)(implicit ec: ExecutionContext)

Abstract Value Members

  1. abstract def clearSchedule()(implicit traceContext: TraceContext): Future[Unit]
    Definition Classes
    Scheduler
  2. abstract def close(): Unit
    Definition Classes
    AutoCloseable
    Annotations
    @throws(classOf[java.lang.Exception])
  3. abstract def initializeSchedule()(implicit traceContext: TraceContext): Future[Option[EnterpriseSchedule]]

    Hook to create and initialize the schedule when scheduler becomes active

    Hook to create and initialize the schedule when scheduler becomes active

    returns

    if override returns Some[A] go ahead and schedule; if None don't

  4. abstract def schedulerJob(schedule: IndividualSchedule)(implicit traceContext: TraceContext): Future[ScheduledRunResult]

    Implements the code that is to be executed when the scheduled time has arrived for the duration of the "maxDuration".

    Implements the code that is to be executed when the scheduled time has arrived for the duration of the "maxDuration". Within a single such "window" schedulerJob will be called until "Done" is returned as a result the first time.

    As guidance long running logic should be broken up into "chunks" expected to run at most for 1 minute although in the face of unpredictable database performance this is a "best effort". Tasks may exceed the "maxDuration" window by however long they take to execute.

    schedule

    the specific schedule among the potentially multiple schedulers that triggered this particular job run. Useful for callees to extract additional information (such as retention for pruning) or to determine the type of work scheduled (e.g. pruning versus pruning metric update).

  5. abstract def updateCron(cron: Cron)(implicit traceContext: TraceContext): EitherT[Future, String, Unit]
    Definition Classes
    Scheduler
  6. abstract def updateMaxDuration(maxDuration: PositiveSeconds)(implicit traceContext: TraceContext): EitherT[Future, String, Unit]
    Definition Classes
    Scheduler

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  6. def deactivate()(implicit traceContext: TraceContext): Unit
    Attributes
    protected
  7. implicit val ec: ExecutionContext
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. def isScheduleActivated: Boolean
    Attributes
    protected
  15. def logger: TracedLogger
    Attributes
    protected
    Definition Classes
    NamedLogging
  16. val loggerFactory: NamedLoggerFactory
    Definition Classes
    EnterpriseSchedulerNamedLogging
  17. implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. def noTracingLogger: Logger
    Attributes
    protected
    Definition Classes
    NamedLogging
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  22. def reactivateSchedulerIfActive()(implicit traceContext: TraceContext): Future[Unit]
  23. def reactivateSchedulerIfActiveET()(implicit traceContext: TraceContext): EitherT[Future, String, Unit]
  24. def restart()(implicit traceContext: TraceContext): Future[Unit]

    Convenience method for restart

    Convenience method for restart

    Definition Classes
    StartStoppable
  25. def start()(implicit traceContext: TraceContext): Future[Unit]

    Start scheduler(s).

    Start scheduler(s).

    Definition Classes
    EnterpriseSchedulerStartStoppable
  26. def stop()(implicit traceContext: TraceContext): Unit

    Stop scheduler(s).

    Stop scheduler(s).

    Definition Classes
    EnterpriseSchedulerStartStoppable
  27. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  28. def toString(): String
    Definition Classes
    AnyRef → Any
  29. def updateScheduleAndReactivateIfActive(update: => Future[Unit])(implicit traceContext: TraceContext): Future[Unit]
  30. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  31. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  32. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
    Deprecated

Inherited from NamedLogging

Inherited from Scheduler

Inherited from AutoCloseable

Inherited from StartStoppable

Inherited from AnyRef

Inherited from Any

Ungrouped