module Resque::Scheduler::Locking
def build_master_lock
def build_master_lock if supports_lua? Resque::Scheduler::Lock::Resilient.new(master_lock_key) else Resque::Scheduler::Lock::Basic.new(master_lock_key) end end
def master?
def master? master_lock.acquire! || master_lock.locked? end
def master_lock
def master_lock @master_lock ||= build_master_lock end
def master_lock_key
def master_lock_key lock_prefix = ENV['RESQUE_SCHEDULER_MASTER_LOCK_PREFIX'] || '' lock_prefix += ':' if lock_prefix != '' "#{Resque.redis.namespace}:#{lock_prefix}resque_scheduler_master_lock" end
def redis_master_version
def redis_master_version Resque.data_store.redis.info['redis_version'].to_f end
def release_master_lock
def release_master_lock master_lock.release rescue *INTERMITTENT_ERRORS @master_lock = nil end
def release_master_lock!
def release_master_lock! warn "#{self}\#release_master_lock! is deprecated because it does " \ "not respect lock ownership. Use #{self}\#release_master_lock " \ "instead (at #{caller.first}" master_lock.release! end
def supports_lua?
def supports_lua? redis_master_version >= 2.5 end