Class: Dogfood::Scheduler
- Inherits:
-
Object
- Object
- Dogfood::Scheduler
- Defined in:
- lib/dogfood/scheduler.rb
Constant Summary collapse
- DEFAULT_DELAYS =
No domain-specific defaults. Packs define their own delay distributions via
p.delays event: { bucket: weight, ... }. {}.freeze
Instance Method Summary collapse
-
#initialize(rng, delays: {}) ⇒ Scheduler
constructor
A new instance of Scheduler.
- #schedule(event) ⇒ Object
Constructor Details
#initialize(rng, delays: {}) ⇒ Scheduler
Returns a new instance of Scheduler.
9 10 11 12 |
# File 'lib/dogfood/scheduler.rb', line 9 def initialize(rng, delays: {}) @rng = rng @delays = DEFAULT_DELAYS.merge(delays) end |
Instance Method Details
#schedule(event) ⇒ Object
14 15 16 17 18 |
# File 'lib/dogfood/scheduler.rb', line 14 def schedule(event) distribution = @delays.fetch(event) { raise ArgumentError, "Unknown event: #{event}" } delay_days = resolve_delay(distribution) { delay_days: delay_days, event: event } end |