class Derrick::Collector
Public Class Methods
new(redis, queue, progress, context)
click to toggle source
# File lib/derrick/collector.rb, line 3 def initialize(redis, queue, progress, context) @redis = redis @queue = queue @progress = progress @context = context end
Public Instance Methods
collect_keys()
click to toggle source
# File lib/derrick/collector.rb, line 15 def collect_keys cursor = '0' loop do cursor, keys = @redis.scan(cursor, count: @context.batch_size) @queue.push(keys) @progress.increment_collected(keys.size) return if cursor == '0' end end
run()
click to toggle source
# File lib/derrick/collector.rb, line 10 def run collect_keys @context.concurrency.times { @queue.push(:stop) } end