Class: Redimap::RedisConn

Inherits:
Object
  • Object
show all
Defined in:
lib/redimap/redis_conn.rb

Constant Summary collapse

@@RESCUE_QUEUE =
'redimap'
@@RESCUE_CLASS =
'RedimapJob'

Instance Method Summary collapse

Constructor Details

#initializeRedisConn

Returns a new instance of RedisConn.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/redimap/redis_conn.rb', line 12

def initialize
  begin
    @redis = Redis.connect(:url => Redimap.config.redis_url)
    
    @redis.ping
  rescue Redis::CannotConnectError => e
    Redimap.logger.error { e.to_s }
    
    return
  end
  
  @KEYS = {
    :redimap_mailboxes    => "#{Redimap.config.redis_ns_redimap}:mailboxes",
    :resque_queues        => "#{Redimap.config.redis_ns_queue}:queues",
    :resque_queue_redimap => "#{Redimap.config.redis_ns_queue}:queue:#{@@RESCUE_QUEUE}",
  }.freeze
  
  if block_given?
    yield self
    
    close
  end
end

Instance Method Details

#closeObject



36
37
38
# File 'lib/redimap/redis_conn.rb', line 36

def close
  @redis.quit
end

#get_mailbox_uid(mailbox) ⇒ Object



40
41
42
# File 'lib/redimap/redis_conn.rb', line 40

def get_mailbox_uid(mailbox)
  @redis.hget(@KEYS[:redimap_mailboxes], mailbox).to_i # Also handles nil.
end

#queue_mailbox_uid(mailbox, uid) ⇒ Object



48
49
50
51
52
# File 'lib/redimap/redis_conn.rb', line 48

def queue_mailbox_uid(mailbox, uid)
  @redis.sadd(@KEYS[:resque_queues], @@RESCUE_QUEUE)
  
  @redis.rpush(@KEYS[:resque_queue_redimap], payload(mailbox, uid))
end

#set_mailbox_uid(mailbox, uid) ⇒ Object



44
45
46
# File 'lib/redimap/redis_conn.rb', line 44

def set_mailbox_uid(mailbox, uid)
  @redis.hset(@KEYS[:redimap_mailboxes], mailbox, uid)
end