Sha256: 03df33645710b1d9bf20f714631e5be28a0a17ed9f5d0e28f03f6aa6104edc4d
Contents?: true
Size: 681 Bytes
Versions: 10
Compression:
Stored size: 681 Bytes
Contents
# encoding: utf-8 module Kurchatov class Queue QUEUE_MAX_SIZE = 10_000 QUEUE_MAX_FLUSH = 200 def initialize @events = ::Queue.new end def <<(event) if @events.size >= QUEUE_MAX_SIZE # GC start if QUEUE_MAX_SIZE ObjectSpace.garbage_collect drop = @events.shift Log.error("Drop event: #{drop.inspect}. See Kurchatov::Queue::QUEUE_MAX_SIZE") end @events << event end def to_flush cur_events = Array.new count = 0 until @events.empty? cur_events << @events.shift count += 1 break if count > QUEUE_MAX_FLUSH end cur_events end end end
Version data entries
10 entries across 10 versions & 1 rubygems