Sha256: 8293066d6739e2cbd7b4f98522b1f8047cbda84b85f942cd5a2389a030d894ce
Contents?: true
Size: 1.74 KB
Versions: 3
Compression:
Stored size: 1.74 KB
Contents
# frozen_string_literal: true module Coverband class Background @semaphore = Mutex.new @thread = nil def self.stop return unless @thread @semaphore.synchronize do if @thread @thread.exit @thread = nil end end end def self.running? @thread&.alive? end def self.start return if running? logger = Coverband.configuration.logger @semaphore.synchronize do return if running? logger.debug("Coverband: Starting background reporting") if Coverband.configuration.verbose sleep_seconds = Coverband.configuration.background_reporting_sleep_seconds.to_i @thread = Thread.new { loop do if Coverband.configuration.reporting_wiggle sleep_seconds = Coverband.configuration.background_reporting_sleep_seconds.to_i + rand(Coverband.configuration.reporting_wiggle.to_i) end # NOTE: Normally as processes first start we immediately report, this causes a redis spike on deploys # if deferred is set also sleep frst to spread load sleep(sleep_seconds.to_i) if Coverband.configuration.defer_eager_loading_data? Coverband.report_coverage Coverband.configuration.view_tracker&.report_views_tracked Coverband.configuration.route_tracker&.report_routes_tracked if Coverband.configuration.verbose logger.debug("Coverband: background reporting coverage (#{Coverband.configuration.store.type}). Sleeping #{sleep_seconds}s") end sleep(sleep_seconds.to_i) unless Coverband.configuration.defer_eager_loading_data? end } end rescue ThreadError stop end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
coverband-5.2.5 | lib/coverband/integrations/background.rb |
coverband-5.2.5.rc.3 | lib/coverband/integrations/background.rb |
coverband-5.2.5.rc.2 | lib/coverband/integrations/background.rb |