Sha256: b030059651e1c52ebd1e62aa3353ff18ec9b1b698fe02baf70adcbd7775043c0
Contents?: true
Size: 632 Bytes
Versions: 2
Compression:
Stored size: 632 Bytes
Contents
# frozen_string_literal: true module Jaeger # Executes a given block periodically. The block will be executed only once # when interval is set to 0. class RecurringExecutor def initialize(interval:) @interval = interval end 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 def running? @thread && @thread.alive? end def stop @thread.kill @thread = nil end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jaeger-client-1.1.0 | lib/jaeger/recurring_executor.rb |
jaeger-client-1.0.0 | lib/jaeger/recurring_executor.rb |