module Zlk::Lockable

Public Instance Methods

lock() click to toggle source
# File lib/zlk/lockable.rb, line 29
def lock
  Zlk.create_lock(lock_key)
end
lock_key() click to toggle source
# File lib/zlk/lockable.rb, line 3
def lock_key
  suffix = if respond_to?(:id)
    id
  else
    respond_to?(:uuid) ? uuid : fail("Define #{self.class}#lock_key")
  end

  "#{self.class}-#{suffix}"
end
lock_timeout() click to toggle source
# File lib/zlk/lockable.rb, line 21
def lock_timeout
  10
end
locked?() click to toggle source
# File lib/zlk/lockable.rb, line 25
def locked?
  !lock.acquirable?
end
run_exclusively() { || ... } click to toggle source
# File lib/zlk/lockable.rb, line 13
def run_exclusively
  lock.run_exclusively { yield }
end
run_with_timeout!() { || ... } click to toggle source
# File lib/zlk/lockable.rb, line 17
def run_with_timeout!
  lock.with_timeout!(lock_timeout) { yield }
end