Interface TimerScheduler<T>

  • All Known Implementing Classes:
    TimerSchedulerImpl

    public interface TimerScheduler<T>
    Support for scheduled self messages in an actor. It is used with Behaviors.withTimers, which also takes care of the lifecycle of the timers such as cancelling them when the actor is restarted or stopped.

    TimerScheduler is not thread-safe, i.e. it must only be used within the actor that owns it.

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void cancel​(java.lang.Object key)
      Cancel a timer with a given key.
      void cancelAll()
      Cancel all timers.
      boolean isTimerActive​(java.lang.Object key)
      Check if a timer with a given key is active.
      void startPeriodicTimer​(java.lang.Object key, T msg, java.time.Duration interval)
      Start a periodic timer that will send msg to the self actor at a fixed interval.
      void startSingleTimer​(java.lang.Object key, T msg, java.time.Duration delay)
      * Start a timer that will send msg once to the self actor after the given delay.
    • Method Detail

      • cancel

        void cancel​(java.lang.Object key)
        Cancel a timer with a given key. If canceling a timer that was already canceled, or key never was used to start a timer this operation will do nothing.

        It is guaranteed that a message from a canceled timer, including its previous incarnation for the same key, will not be received by the actor, even though the message might already be enqueued in the mailbox when cancel is called.

        Parameters:
        key - (undocumented)
      • cancelAll

        void cancelAll()
        Cancel all timers.
      • isTimerActive

        boolean isTimerActive​(java.lang.Object key)
        Check if a timer with a given key is active.
        Parameters:
        key - (undocumented)
        Returns:
        (undocumented)
      • startPeriodicTimer

        void startPeriodicTimer​(java.lang.Object key,
                                T msg,
                                java.time.Duration interval)
        Start a periodic timer that will send msg to the self actor at a fixed interval.

        Each timer has a key and if a new timer with same key is started the previous is cancelled and it's guaranteed that a message from the previous timer is not received, even though it might already be enqueued in the mailbox when the new timer is started.

        Parameters:
        key - (undocumented)
        msg - (undocumented)
        interval - (undocumented)
      • startSingleTimer

        void startSingleTimer​(java.lang.Object key,
                              T msg,
                              java.time.Duration delay)
        * Start a timer that will send msg once to the self actor after the given delay.

        Each timer has a key and if a new timer with same key is started the previous is cancelled and it's guaranteed that a message from the previous timer is not received, even though it might already be enqueued in the mailbox when the new timer is started.

        Parameters:
        key - (undocumented)
        msg - (undocumented)
        delay - (undocumented)