Exception: TIMEx::Expired

Inherits:
Exception
  • Object
show all
Defined in:
lib/timex/expired.rb

Overview

Note:

Inherits from Exception (not StandardError), so rescue without a type and most rescue StandardError handlers will not catch this. Rescue TIMEx::Expired explicitly when you wrap raw strategy code. For +StandardError+-compatible behavior use on_timeout: :raise_standard, which raises TimeoutError with this exception as #cause.

Raised when a deadline elapses while a strategy is executing user work.

Strategies catch Expired, record telemetry, then dispatch through TimeoutHandling according to on_timeout:.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = "deadline expired", strategy: nil, deadline_ms: nil, elapsed_ms: nil) ⇒ Expired

Returns a new instance of Expired.

Parameters:

  • message (String) (defaults to: "deadline expired")

    human-readable reason (default is generic)

  • strategy (Symbol, nil) (defaults to: nil)

    strategy name symbol when known

  • deadline_ms (Float, Integer, nil) (defaults to: nil)

    remaining budget in ms when expired

  • elapsed_ms (Float, Integer, nil) (defaults to: nil)

    elapsed time in ms when expired



26
27
28
29
30
31
# File 'lib/timex/expired.rb', line 26

def initialize(message = "deadline expired", strategy: nil, deadline_ms: nil, elapsed_ms: nil)
  super(message)
  @strategy = strategy
  @deadline_ms = deadline_ms
  @elapsed_ms = elapsed_ms
end

Instance Attribute Details

#deadline_msObject (readonly)

Returns the value of attribute deadline_ms.



20
21
22
# File 'lib/timex/expired.rb', line 20

def deadline_ms
  @deadline_ms
end

#elapsed_msObject (readonly)

Returns the value of attribute elapsed_ms.



20
21
22
# File 'lib/timex/expired.rb', line 20

def elapsed_ms
  @elapsed_ms
end

#strategyObject (readonly)

Returns the value of attribute strategy.



20
21
22
# File 'lib/timex/expired.rb', line 20

def strategy
  @strategy
end