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