class Kronos::Runner::Synchronous::LockManager

Public Class Methods

new(storage) click to toggle source
# File lib/kronos/runner/synchronous/lock_manager.rb, line 9
def initialize(storage)
  @storage = storage
end

Public Instance Methods

lock_and_execute(task_id) { || ... } click to toggle source
# File lib/kronos/runner/synchronous/lock_manager.rb, line 13
def lock_and_execute(task_id)
  return if locked_task?(task_id)
  lock_id = lock_task(task_id)
  return unless check_lock(task_id, lock_id)
  yield
ensure
  release_lock(task_id)
end