class Seiun::Queue
Public Class Methods
new(batch_size: 10_000, &operation)
click to toggle source
# File lib/seiun/queue.rb, line 3 def initialize(batch_size: 10_000, &operation) @batch_size = batch_size @operation = operation initialize_queue @jobs = [] end
Public Instance Methods
<<(record)
click to toggle source
# File lib/seiun/queue.rb, line 10 def <<(record) push(record) end
close()
click to toggle source
# File lib/seiun/queue.rb, line 20 def close operate @jobs.compact end
push(record)
click to toggle source
# File lib/seiun/queue.rb, line 14 def push(record) @queue << record operate if @queue.size == @batch_size record end
Private Instance Methods
initialize_queue()
click to toggle source
# File lib/seiun/queue.rb, line 32 def initialize_queue @queue = [] end
operate()
click to toggle source
# File lib/seiun/queue.rb, line 27 def operate @jobs << @operation.call(@queue) initialize_queue end