class RedisBatchPush::Getter

Attributes

backup_queue[R]

Public Class Methods

new(redis_client, queue) click to toggle source
# File lib/redis_batch_push/getter.rb, line 8
def initialize redis_client, queue
  @redis_client = redis_client
  @queue = queue
  @backup_queue = "#{@queue}:backup:#{SecureRandom.hex}"
end

Public Instance Methods

clear_backup() click to toggle source
# File lib/redis_batch_push/getter.rb, line 24
def clear_backup
  @redis_client.del(@backup_queue)
end
get_next_item() click to toggle source
# File lib/redis_batch_push/getter.rb, line 14
def get_next_item
  @redis_client.brpoplpush(
    @queue,
    @backup_queue,
    {
      timeout: 5
    }
  )
end
restore_backups() click to toggle source
# File lib/redis_batch_push/getter.rb, line 28
def restore_backups
  @redis_client.keys("#{@queue}:backup:*").each do |bkp_queue|
    loop do
      break unless @redis_client.rpoplpush(bkp_queue, @queue)
    end
    @redis_client.del(bkp_queue)
  end
end