class ResqueAdmin::Scheduler::Lock::Base
Attributes
key[R]
timeout[RW]
Public Class Methods
new(key, options = {})
click to toggle source
# File lib/resque_admin/scheduler/lock/base.rb, line 10 def initialize(key, options = {}) @key = key # 3 minute default timeout @timeout = options[:timeout] || 60 * 3 end
Public Instance Methods
acquire!()
click to toggle source
Attempts to acquire the lock. Returns true if successfully acquired.
# File lib/resque_admin/scheduler/lock/base.rb, line 18 def acquire! raise NotImplementedError end
locked?()
click to toggle source
Returns true if you currently hold the lock.
# File lib/resque_admin/scheduler/lock/base.rb, line 27 def locked? raise NotImplementedError end
release()
click to toggle source
Releases the lock iff we own it
# File lib/resque_admin/scheduler/lock/base.rb, line 37 def release locked? && release! end
release!()
click to toggle source
Releases the lock.
# File lib/resque_admin/scheduler/lock/base.rb, line 32 def release! ResqueAdmin.redis.del(key) == 1 end
value()
click to toggle source
# File lib/resque_admin/scheduler/lock/base.rb, line 22 def value @value ||= [hostname, process_id].join(':') end
Private Instance Methods
extend_lock!()
click to toggle source
Extends the lock by `timeout` seconds.
# File lib/resque_admin/scheduler/lock/base.rb, line 44 def extend_lock! ResqueAdmin.redis.expire(key, timeout) end
hostname()
click to toggle source
# File lib/resque_admin/scheduler/lock/base.rb, line 48 def hostname local_hostname = Socket.gethostname Socket.gethostbyname(local_hostname).first rescue local_hostname end
process_id()
click to toggle source
# File lib/resque_admin/scheduler/lock/base.rb, line 55 def process_id Process.pid end