class Jaeger::RecurringExecutor
Executes a given block periodically. The block will be executed only once when interval is set to 0.
Public Class Methods
new(interval:)
click to toggle source
# File lib/jaeger/recurring_executor.rb, line 7 def initialize(interval:) @interval = interval end
Public Instance Methods
running?()
click to toggle source
# File lib/jaeger/recurring_executor.rb, line 26 def running? @thread && @thread.alive? end
start() { || ... }
click to toggle source
# File lib/jaeger/recurring_executor.rb, line 11 def start(&block) raise 'Already running' if @thread @thread = Thread.new do if @interval <= 0 yield else loop do yield sleep @interval end end end end
stop()
click to toggle source
# File lib/jaeger/recurring_executor.rb, line 30 def stop @thread.kill @thread = nil end