Packages

c

com.twitter.util

SlowProbeProxyTimer

abstract class SlowProbeProxyTimer extends ProxyTimer

An abstract ProxyTimer that provides callback methods which are called when a task takes longer than the specified maximum runtime or if a task is observed to be taking longer than the specified maximum runtime.

Note

Observation of slow task execution is performed when scheduling more work to avoid the overhead of another thread or timer checking on tasks. This results in lower overhead but means that slow running tasks may not be observed while executing. However, they will trigger a callback to the slowTaskCompleted regardless of whether additional work is scheduled.

,

This makes assumptions that the underlying Timer will execute tasks sequentially in order to catch slow running tasks during execution. If the underlying Timer executes tasks in parallel the callback slowTaskExecuting will become unreliable. However, the slowTaskCompleted callback will remain reliable but must be a thread-safe implementation.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SlowProbeProxyTimer
  2. ProxyTimer
  3. Timer
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new SlowProbeProxyTimer(maxRuntime: Duration)

Abstract Value Members

  1. abstract def self: Timer

    The underlying Timer instance used for proxying methods.

    The underlying Timer instance used for proxying methods.

    Attributes
    protected
    Definition Classes
    ProxyTimer
  2. abstract def slowTaskCompleted(elapsed: Duration): Unit

    Called when a task takes longer than the specified maximum duration

    Called when a task takes longer than the specified maximum duration

    Attributes
    protected
  3. abstract def slowTaskExecuting(elapsed: Duration): Unit

    Called when a task is observed to be executing longer than the specified maximum duration

    Called when a task is observed to be executing longer than the specified maximum duration

    Attributes
    protected

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()
  6. def doAt[A](time: Time)(f: => A): Future[A]

    Performs an operation at the specified time.

    Performs an operation at the specified time. Interrupting the Future will cancel the scheduled timer task, if not too late.

    Definition Classes
    Timer
    Note

    Interrupts from returned Future will be translated into a task cancellation if and only if this Timer honors cancellations in schedule(Time)(f).

  7. def doLater[A](delay: Duration)(f: => A): Future[A]

    Performs an operation after the specified delay.

    Performs an operation after the specified delay. Interrupting the Future will cancel the scheduled timer task, if not too late.

    Definition Classes
    Timer
    Note

    Interrupts from returned Future will be translated into a task cancellation if and only if this Timer honors cancellations in schedule(Time)(f).

  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def schedule(period: Duration)(f: => Unit): TimerTask

    Run f every elapsed period, starting period from now.

    Run f every elapsed period, starting period from now.

    Definition Classes
    Timer
  18. final def schedule(when: Time, period: Duration)(f: => Unit): TimerTask

    Run f at time when; subsequently run f at every elapsed period.

    Run f at time when; subsequently run f at every elapsed period.

    Definition Classes
    Timer
    Note

    If period is negative or undefined, the timer task will be rescheduled immediately (i.e., period will be treated as Duration.Zero).

    ,

    If when is negative or undefined, it will be treated as Time.epoch.

  19. final def schedule(when: Time)(f: => Unit): TimerTask

    Run f at time when.

    Run f at time when.

    Definition Classes
    Timer
    Note

    If when is negative or undefined, it will be treated as Time.epoch.

  20. def scheduleOnce(when: Time)(f: => Unit): TimerTask
    Attributes
    protected
    Definition Classes
    SlowProbeProxyTimerProxyTimerTimer
  21. def schedulePeriodically(when: Time, period: Duration)(f: => Unit): TimerTask
    Attributes
    protected
    Definition Classes
    SlowProbeProxyTimerProxyTimerTimer
  22. def stop(): Unit

    Stop the timer.

    Stop the timer. Pending tasks are cancelled. The timer is unusable after being stopped.

    Definition Classes
    ProxyTimerTimer
  23. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  24. def toString(): String
    Definition Classes
    SlowProbeProxyTimer → AnyRef → Any
  25. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from ProxyTimer

Inherited from Timer

Inherited from AnyRef

Inherited from Any

Ungrouped