Class: Resque::Plugins::Serializer::Mutex

Inherits:
Object
  • Object
show all
Defined in:
lib/resque-serializer/mutex.rb

Defined Under Namespace

Classes: LockFailed

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key, ttl: 5.minutes) ⇒ Mutex

Returns a new instance of Mutex.



14
15
16
17
# File 'lib/resque-serializer/mutex.rb', line 14

def initialize(key, ttl: 5.minutes)
  @key = key
  @ttl = ttl.to_i
end

Instance Attribute Details

#keyObject (readonly)

Returns the value of attribute key.



9
10
11
# File 'lib/resque-serializer/mutex.rb', line 9

def key
  @key
end

#ttlObject (readonly)

Returns the value of attribute ttl.



9
10
11
# File 'lib/resque-serializer/mutex.rb', line 9

def ttl
  @ttl
end

Instance Method Details

#lockObject



19
20
21
# File 'lib/resque-serializer/mutex.rb', line 19

def lock
  !!redis.set(key, true, set_options)
end

#lock!Object



23
24
25
# File 'lib/resque-serializer/mutex.rb', line 23

def lock!
  !!redis.set(key, true, set_options) || fail(LockFailed)
end

#locked?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/resque-serializer/mutex.rb', line 27

def locked?
  !!redis.get(key)
end

#unlockObject



31
32
33
# File 'lib/resque-serializer/mutex.rb', line 31

def unlock
  !!redis.del(key)
end