Class

com.twitter.util

SlowProbeProxyTimer

Related Doc: package util

Permalink

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

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.

,

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.

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. All

Instance Constructors

  1. new SlowProbeProxyTimer(maxRuntime: Duration)

    Permalink

Abstract Value Members

  1. abstract def self: Timer

    Permalink

    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

    Permalink

    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

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def doAt[A](time: Time)(f: ⇒ A): Future[A]

    Permalink

    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]

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def schedule(period: Duration)(f: ⇒ Unit): TimerTask

    Permalink

    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

    Permalink

    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 when is negative or undefined, it will be treated as Time.epoch.

    ,

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

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

    Permalink

    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

    Permalink
    Attributes
    protected
    Definition Classes
    SlowProbeProxyTimerProxyTimerTimer
  21. def schedulePeriodically(when: Time, period: Duration)(f: ⇒ Unit): TimerTask

    Permalink
    Attributes
    protected
    Definition Classes
    SlowProbeProxyTimerProxyTimerTimer
  22. def stop(): Unit

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef
  24. def toString(): String

    Permalink
    Definition Classes
    SlowProbeProxyTimer → AnyRef → Any
  25. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from ProxyTimer

Inherited from Timer

Inherited from AnyRef

Inherited from Any

Ungrouped