Class TimerGraphStageLogic

  • Direct Known Subclasses:
    TimerGraphStageLogicWithLogging

    public abstract class TimerGraphStageLogic
    extends GraphStageLogic
    Provides timer related facilities to a GraphStageLogic.

    To be thread safe the methods of this class must only be called from either the constructor of the graph operator during materialization or one of the methods invoked by the graph operator machinery, such as onPush and onPull.

    • Constructor Detail

      • TimerGraphStageLogic

        public TimerGraphStageLogic​(Shape _shape)
    • Method Detail

      • cancelTimer

        protected final void cancelTimer​(java.lang.Object timerKey)
        Cancel timer, ensuring that the onTimer(java.lang.Object) is not subsequently called.

        Parameters:
        timerKey - key of the timer to cancel
      • isTimerActive

        protected final boolean isTimerActive​(java.lang.Object timerKey)
        Inquire whether the timer is still active. Returns true unless the timer does not exist, has previously been canceled or if it was a single-shot timer that was already triggered.
      • onTimer

        protected void onTimer​(java.lang.Object timerKey)
                        throws java.lang.Exception
        Will be called when the scheduled timer is triggered.

        Parameters:
        timerKey - key of the scheduled timer
        Throws:
        java.lang.Exception
      • scheduleAtFixedRate

        protected final void scheduleAtFixedRate​(java.lang.Object timerKey,
                                                 scala.concurrent.duration.FiniteDuration initialDelay,
                                                 scala.concurrent.duration.FiniteDuration interval)
        Schedule timer to call onTimer(java.lang.Object) periodically with the given interval after the specified initial delay. Any existing timer with the same key will automatically be canceled before adding the new timer.
      • scheduleAtFixedRate

        protected final void scheduleAtFixedRate​(java.lang.Object timerKey,
                                                 java.time.Duration initialDelay,
                                                 java.time.Duration interval)
        Schedule timer to call onTimer(java.lang.Object) periodically with the given interval after the specified initial delay. Any existing timer with the same key will automatically be canceled before adding the new timer.
      • scheduleOnce

        protected final void scheduleOnce​(java.lang.Object timerKey,
                                          scala.concurrent.duration.FiniteDuration delay)
        Schedule timer to call onTimer(java.lang.Object) after given delay. Any existing timer with the same key will automatically be canceled before adding the new timer.
      • scheduleOnce

        protected final void scheduleOnce​(java.lang.Object timerKey,
                                          java.time.Duration delay)
        Schedule timer to call onTimer(java.lang.Object) after given delay. Any existing timer with the same key will automatically be canceled before adding the new timer.
      • schedulePeriodically

        protected final void schedulePeriodically​(java.lang.Object timerKey,
                                                  scala.concurrent.duration.FiniteDuration interval)
        Deprecated.
        Use scheduleWithFixedDelay or scheduleAtFixedRate instead. This has the same semantics as scheduleAtFixedRate, but scheduleWithFixedDelay is often preferred. Since 2.6.0.
        Schedule timer to call onTimer(java.lang.Object) periodically with the given interval. Any existing timer with the same key will automatically be canceled before adding the new timer.
      • schedulePeriodically

        protected final void schedulePeriodically​(java.lang.Object timerKey,
                                                  java.time.Duration interval)
        Deprecated.
        Use scheduleWithFixedDelay or scheduleAtFixedRate instead. This has the same semantics as scheduleAtFixedRate, but scheduleWithFixedDelay is often preferred. Since 2.6.0.
        Schedule timer to call onTimer(java.lang.Object) periodically with the given interval. Any existing timer with the same key will automatically be canceled before adding the new timer.
      • schedulePeriodicallyWithInitialDelay

        protected final void schedulePeriodicallyWithInitialDelay​(java.lang.Object timerKey,
                                                                  scala.concurrent.duration.FiniteDuration initialDelay,
                                                                  scala.concurrent.duration.FiniteDuration interval)
        Deprecated.
        Use scheduleWithFixedDelay or scheduleAtFixedRate instead. This has the same semantics as scheduleAtFixedRate, but scheduleWithFixedDelay is often preferred. Since 2.6.0.
        Schedule timer to call onTimer(java.lang.Object) periodically with the given interval after the specified initial delay. Any existing timer with the same key will automatically be canceled before adding the new timer.
      • schedulePeriodicallyWithInitialDelay

        protected final void schedulePeriodicallyWithInitialDelay​(java.lang.Object timerKey,
                                                                  java.time.Duration initialDelay,
                                                                  java.time.Duration interval)
        Deprecated.
        Use scheduleWithFixedDelay or scheduleAtFixedRate instead. This has the same semantics as scheduleAtFixedRate, but scheduleWithFixedDelay is often preferred. Since 2.6.0.
        Schedule timer to call onTimer(java.lang.Object) periodically with the given interval after the specified initial delay. Any existing timer with the same key will automatically be canceled before adding the new timer.
      • scheduleWithFixedDelay

        protected final void scheduleWithFixedDelay​(java.lang.Object timerKey,
                                                    scala.concurrent.duration.FiniteDuration initialDelay,
                                                    scala.concurrent.duration.FiniteDuration delay)
        Schedule timer to call onTimer(java.lang.Object) periodically with the given delay after the specified initial delay. Any existing timer with the same key will automatically be canceled before adding the new timer.
      • scheduleWithFixedDelay

        protected final void scheduleWithFixedDelay​(java.lang.Object timerKey,
                                                    java.time.Duration initialDelay,
                                                    java.time.Duration interval)
        Schedule timer to call onTimer(java.lang.Object) periodically with the given delay after the specified initial delay. Any existing timer with the same key will automatically be canceled before adding the new timer.