class Metacrunch::Redis::QueueDestination

Constants

DEFAULT_OPTIONS

Public Class Methods

new(redis, queue_name, options = {}) click to toggle source
# File lib/metacrunch/redis/queue_destination.rb, line 10
def initialize(redis, queue_name, options = {})
  @redis = redis
  @queue_name = queue_name
  @options = DEFAULT_OPTIONS.merge(options)
end

Public Instance Methods

close() click to toggle source
# File lib/metacrunch/redis/queue_destination.rb, line 30
def close
  if @redis
    begin
      @redis.bgsave if @options[:save_on_close]
    rescue Redis::CommandError ; end
    @redis.close
  end
end
write(data) click to toggle source
# File lib/metacrunch/redis/queue_destination.rb, line 16
def write(data)
  return if data.blank?

  @redis.rpush(@queue_name, data)
rescue RuntimeError => e
  if e.message =~ /maxmemory/
    puts "Redis has reached maxmemory. Waiting 10 seconds and trying again..."
    sleep(10)
    retry
  else
    raise e
  end
end