class InfluxDB::AsyncQueue::Adapters::Redis

Constants

DEFAULT_QUEUE_NAME

Attributes

queue_name[R]
redis[R]

Public Class Methods

new(redis, queue_name = nil) click to toggle source
# File lib/influxdb/async_queue/adapters/redis.rb, line 9
def initialize(redis, queue_name = nil)
  @redis =
    if redis.is_a?(::Redis)
      redis
    elsif redis.is_a?(String)
      ::Redis.new(url: redis)
    elsif redis.is_a?(Hash)
      ::Redis.new(redis)
    else
      raise ArgumentError
    end

  @queue_name = queue_name || DEFAULT_QUEUE_NAME
end

Public Instance Methods

pop(batch_size) click to toggle source
# File lib/influxdb/async_queue/adapters/redis.rb, line 25
def pop(batch_size)
  redis.multi do |r|
    r.lrange(queue_name, 0, batch_size - 1)
    r.ltrim(queue_name, batch_size, -1)
  end.first
end
push(*points) click to toggle source
# File lib/influxdb/async_queue/adapters/redis.rb, line 32
def push(*points)
  redis.rpush(queue_name, points)
end