Sha256: e2a182dff40d107d89eb48e5e762cc8a9982ec8edc63744fb38002eb94ee1734
Contents?: true
Size: 757 Bytes
Versions: 8
Compression:
Stored size: 757 Bytes
Contents
module WorkerKiller class CountLimiter attr_reader :min, :max, :left, :limit, :started_at def initialize(min: 3072, max: 4096, verbose: false) @min = min @max = max @limit = @min + WorkerKiller.randomize(@max - @min + 1) @left = @limit @verbose = verbose end def check return nil if @limit <= 1 @started_at ||= Time.now if @verbose logger.info "#{self}: worker (pid: #{Process.pid}) has #{@left} left before being limited" end return false if (@left -= 1) > 0 logger.warn "#{self}: worker (pid: #{Process.pid}) exceeds max number of requests (limit: #{@limit})" true end def logger WorkerKiller.configuration.logger end end end
Version data entries
8 entries across 8 versions & 1 rubygems