class ActiveJob::Locking::Adapters::Memory
Public Class Methods
lock(key)
click to toggle source
# File lib/activejob/locking/adapters/memory.rb, line 8 def self.lock(key) @mutex.synchronize do if @hash[key] false else @hash[key] = Time.now end end end
locked?(key)
click to toggle source
# File lib/activejob/locking/adapters/memory.rb, line 24 def self.locked?(key) @mutex.synchronize do @hash.include?(key) end end
reset()
click to toggle source
# File lib/activejob/locking/adapters/memory.rb, line 30 def self.reset @mutex.synchronize do @hash = Hash.new end end
unlock(key)
click to toggle source
# File lib/activejob/locking/adapters/memory.rb, line 18 def self.unlock(key) @mutex.synchronize do @hash.delete(key) end end
Public Instance Methods
create_lock_manager()
click to toggle source
# File lib/activejob/locking/adapters/memory.rb, line 36 def create_lock_manager end
lock()
click to toggle source
# File lib/activejob/locking/adapters/memory.rb, line 39 def lock finish = Time.now + self.options.lock_acquire_time sleep_time = [5, self.options.lock_acquire_time / 5].min begin lock = self.class.lock(key) return lock if lock sleep(sleep_time) end while Time.now < finish false end
unlock()
click to toggle source
# File lib/activejob/locking/adapters/memory.rb, line 52 def unlock self.class.unlock(self.key) end