Module: ActiveJob::Lockable

Extended by:
Lockable, ActiveSupport::Concern
Included in:
Lockable
Defined in:
lib/activejob/lockable.rb,
lib/activejob/lockable/version.rb,
lib/activejob/lockable/lockable.rb,
lib/activejob/lockable/redis_store.rb

Defined Under Namespace

Modules: ClassMethods Classes: RedisStore

Constant Summary collapse

VERSION =
'0.2.0'

Instance Method Summary collapse

Instance Method Details

#redisObject

Returns the current Redis connection, raising an error if it hasn’t been created



34
35
36
37
# File 'lib/activejob/lockable.rb', line 34

def redis
  return @redis if @redis
  raise 'Redis is not configured'
end

#redis=(server) ⇒ Object

Accepts:

1. A redis URL (valid for `Redis.new(url: url)`)
2. an options hash compatible with `Redis.new`
3. or a valid Redis instance (one that responds to `#smembers`). Likely,
   this will be an instance of either `Redis`, `Redis::Client`,
   `Redis::DistRedis`, or `Redis::Namespace`.


20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/activejob/lockable.rb', line 20

def redis=(server)
  @redis = if server.is_a?(String)
    Redis.new(:url => server, :thread_safe => true)
  elsif server.is_a?(Hash)
    Redis.new(server.merge(:thread_safe => true))
  elsif server.respond_to?(:smembers)
    server
  else
    raise ArgumentError,
      'You must supply a url, options hash or valid Redis connection instance'
  end
end